Wildfly возвращает кешированные значения для http-запроса при развертывании из файла войны

У меня проблема с моим приложением Java Web Start. У меня есть приложение JavaEE, работающее в контейнере Wildfly 9. Я передаю файл свойств в приложение Web Start, которое содержит URL-адрес CSV-файла и URL-адрес файла шаблона.

Когда я запускаю приложение в первый раз, приложение загружает файл свойств, загружает URL-адрес из записей файла свойств, загружает файл csv и файл шаблона и выполняет слияние почты с файлами.

Когда я запускаю приложение Web Start во второй, третий, ... раз, он всегда загружает файл свойств с первого запуска. Даже файл свойств перезаписывается каждый раз, когда пользователь запускает приложение Web Start.

Я обнаружил, что когда я развертываю свое приложение в Wildfly через «Полная публикация» из eclipse, приложение Web Start работает нормально, но когда я развертываю свое приложение через «Проект -> Экспорт -> файл WAR» и размещаю файл . war в папке развертывания в моей установке Wildfly, я получаю поведение, описанное выше.

Некоторая дополнительная информация: Развертывание через вывод консоли «Экспорт файла WAR», 1-й запуск:

Java Web Start 11.65.2.17
JRE-Version verwenden 1.8.0_65-b17 Java HotSpot(TM) Client VM
Benutzer-Home-Verzeichnis = C:\Users\arthurw
c:   Konsolenfenster löschen
f:   Objekte in Finalisierungs-Queue finalisieren
g:   Garbage Collect
h:   Diese Hilfemeldung anzeigen
m:   Speicherauslastung drucken
o:   Logging auslösen
p:   Proxykonfiguration neu laden
q:   Konsole ausblenden
r:   Policy-Konfiguration neu laden
s:   System- und Deployment-Eigenschaften ausgeben
t:   Threadliste ausgeben
v:   Threadstack ausgeben
0-5: Traceebene auf <n> setzen

CacheEntry[http://localhost:8080/browser/resources/webstart/715.jnlp]: updateAvailable=true,lastModified=Tue Nov 24 12:23:01 CET 2015,length=831
CacheEntry[http://localhost:8080/browser/resources/webstart/Textverwaltungsschnittstelle.jar]: updateAvailable=true,lastModified=Tue Nov 24 12:21:14 CET 2015,length=2728463
Missing Permissions manifest attribute in main jar: http://localhost:8080/browser/resources/webstart/Textverwaltungsschnittstelle.jar
CacheEntry[http://localhost:8080/browser/resources/webstart/715.properties]: updateAvailable=true,lastModified=Tue Nov 24 12:23:34 CET 2015,length=298
Content-Type = application/octet-stream
Content-Disposition = null
Content-Length = 298
fileName = 715.properties
File downloaded
Content-Type = application/octet-stream
Content-Disposition = null
Content-Length = 2823
fileName = 715_2015_11_24_12_26_16.csv
File downloaded
Content-Type = application/octet-stream
Content-Disposition = null
Content-Length = 37405
fileName = 715_2015_11_24_12_26_16.DOCX
File downloaded
The Library been loaded, and an activeX component been created

2-й запуск:

Java Web Start 11.65.2.17
JRE-Version verwenden 1.8.0_65-b17 Java HotSpot(TM) Client VM
Benutzer-Home-Verzeichnis = C:\Users\arthurw
----------------------------------------------------
c:   Konsolenfenster löschen
f:   Objekte in Finalisierungs-Queue finalisieren
g:   Garbage Collect
h:   Diese Hilfemeldung anzeigen
m:   Speicherauslastung drucken
o:   Logging auslösen
p:   Proxykonfiguration neu laden
q:   Konsole ausblenden
r:   Policy-Konfiguration neu laden
s:   System- und Deployment-Eigenschaften ausgeben
t:   Threadliste ausgeben
v:   Threadstack ausgeben
0-5: Traceebene auf <n> setzen
----------------------------------------------------
Missing Permissions manifest attribute in main jar: http://localhost:8080/browser/resources/webstart/Textverwaltungsschnittstelle.jar
Content-Type = application/octet-stream
Content-Disposition = null
Content-Length = 298
fileName = 715.properties
File downloaded
Content-Type = application/octet-stream
Content-Disposition = null
Content-Length = 2823
fileName = 715_2015_11_24_12_26_16.csv
File downloaded
Content-Type = application/octet-stream
Content-Disposition = null
Content-Length = 37405
fileName = 715_2015_11_24_12_26_16.DOCX
File downloaded
The Library been loaded, and an activeX component been created

А это JNLP-файл

<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" codebase="http://localhost:8080/browser/resources/webstart" href="715.jnlp">
     <information>
          <title>Textverwaltung Schnittstelle</title>
          <description>automatisierte Serienbriefbefüllung mithilfe Ihrer Textverwaltung</description>
     </information>
     <security>
          <all-permissions/>
     </security>
     <resources>
          <j2se version="1.6+" />
          <jar href="Textverwaltungsschnittstelle.jar" main="true"/>
     </resources>
     <update check="always" policy="always"/>
     <application-desc main-class="mm.Textverwaltungsschnittstelle">
        <argument>http://localhost:8080/browser/resources/webstart/715.properties</argument>
     </application-desc>
</jnlp>

Мне нужно, чтобы он работал с развертыванием через «Экспорт файла WAR». Кто-нибудь знает, в чем проблема?

------------------------------РЕДАКТИРОВАТЬ------------------- ------------------

Это процесс загрузки файла свойств, здесь все нормально, я могу вручную открыть файл свойств, и содержимое правильное.

Properties clientprops=new Properties();
clientprops.put("modus", modus);
clientprops.put("templatepath", templateUrl);
clientprops.put("csvpath", csvUrl);
String propertypath=jnlpdir + user + ".properties";
File fp = new File(propertypath);
OutputStream out;
try {
  out = new FileOutputStream(fp);
  clientprops.store(out, "Benötigte Attribute für die Aktivierung der Textverwaltungsschnittstelle");
} catch (IOException e2) {
    e2.printStackTrace();
}

Вот как я загружаю файл свойств

File proppath = new File(tmpdir + "prop.properties");
URL url;
try {
  url = new URL(args[0]);
  FileUtils.copyURLToFile(url, proppath);
} catch (IOException e) {
  showFehler("Properties konnten nicht kopiert werden");
}

copyURLToFile(url, proppath) — это метод из Appache FileUtils. Загруженный файл свойств имеет недопустимое содержимое. Это каждый раз контент из 1-го запуска.

С уважением Артур


person Arthur Welsch    schedule 24.11.2015    source источник
comment
Привет, Ян, 715.properties в порядке, это только содержимое файла, которое меняется каждый раз, но загруженный 715.properties в веб-запуске имеет содержимое из 1-го запуска, что неверно. Я отредактирую свой пост, чтобы показать вам код, который обрабатывает загрузку и загрузку свойства.   -  person Arthur Welsch    schedule 24.11.2015
comment
Привет, Ян, я понял, что когда я открываю файл свойств с помощью firefox, я всегда получаю одно и то же содержимое с первого запуска. Но когда я перехожу к папке с помощью проводника Windows и открываю там файл свойств, он имеет правильное содержимое. Я предполагаю, что wildfly дает мне кешированную версию файла 715.properties, когда я делаю http-запрос для этого ресурса.   -  person Arthur Welsch    schedule 24.11.2015
comment
Привет, Ян, действительно, файл свойств не был обновлен в файле войны. Я нашел обходной путь, создав новый файл свойств с уникальным именем файла и сделав запрос на этот новый файл. спасибо за помощь   -  person Arthur Welsch    schedule 24.11.2015


Ответы (1)


Как обсуждалось:

Файл свойств, загруженный в приложении WebStarted, необходимо обновить и включить в опубликованный .war для работы. Так что это вообще не связано с WebStart, wildfly или JNLP, но что-то, что следует учитывать в процессе сборки.

person Jan    schedule 24.11.2015