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="/bg715.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="/bgTextverwaltungsschnittstelle.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. Изтегленият файл със свойства има невалидно съдържание. Всеки път е съдържанието от първото изпълнение.

Искрено Артур


person Arthur Welsch    schedule 24.11.2015    source източник
comment
Здравей, Ян, 715.properties е наред, само съдържанието на файла се променя всеки път, но изтегленият 715.properties в web start има съдържанието от първото изпълнение, което е грешно. Ще редактирам публикацията си, за да ви покажа кода, който обработва зареждането и изтеглянето на свойството.   -  person Arthur Welsch    schedule 24.11.2015
comment
Здравей, Ян, разбрах, че когато отворя файла със свойствата с firefox, получавам винаги едно и също съдържание от първото изпълнение. Но когато навигирам до папката с помощта на Windows File Explorer и отворя файла със свойства там, той има правилното съдържание. Предполагам, че 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