2016-01-27 3 views
0

Я хочу запустить свое приложение с помощью webstart, netbeans создает папку «dist», и если я запускаю HTML с моего компьютера, программа работает нормально, но если я загружу HTML, JNLP, JAR и папка lib со всеми библиотеками jars на моем сервере, программа выдает ошибку, предполагая, что jar пытается найти зависимости в папке lib, но есть проблема с косой чертой в пути, потому что сервер работает на Linux, это ошибка:Java WebStart не может загрузить ресурс на сервере

ExitException[ 3]com.sun.deploy.net.FailedDownloadException: Unable to load resource: http://www.abaxomol.com/dist/lib \commons-io-2.4.jar

проблема не в JNLP, потому что им объявляя свои ресурсы, как это в теге ресурсов:

<jar href="http://www.abaxomol.com/dist/lib/commons-io-2.4.jar" size="185140" download="eager" /> 

В «project.properties» Я нашел

${file.reference.commons-io-2.4.jar}:\

, и я думаю, что здесь проблема, но им не уверен, что любая идея, что происходит?

EDIT: полный JNLP

<?xml version="1.0" encoding="utf-8"?> 
<jnlp spec="1.0" xmlns:jfx="http://javafx.com" href="ContenedoresChart.jnlp"> 
    <information> 
    <title>ContenedoresChart</title> 
    <vendor>Diego</vendor> 
    <description>null</description> 
    <offline-allowed/> 
    </information> 
    <resources> 
    <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/> 
    <jar href="ContenedoresChart.jar" size="2200844" download="eager" /> 
    <jar href="http://www.abaxomol.com/dist/lib/commons-io-2.4.jar" size="198396" download="eager" /> 
    <jar href="http://www.abaxomol.com/dist/lib/guava-18.0.jar" size="2410298" download="eager" /> 
    <jar href="http://www.abaxomol.com/dist/lib/json-simple-1.1.1.jar" size="26301" download="eager" /> 
    </resources> 
<security> 
    <all-permissions/> 
</security> 
    <applet-desc width="800" height="600" main-class="com.javafx.main.NoJavaFXFallback" name="ContenedoresChart" > 
    <param name="requiredFXVersion" value="8.0+"/> 
    </applet-desc> 
    <jfx:javafx-desc width="800" height="600" main-class="contenedoreschart.ContenedoresChart" name="ContenedoresChart" /> 
    <update check="always"/> 
</jnlp> 

Полный project.properties:

annotation.processing.enabled=true 
annotation.processing.enabled.in.editor=false 
annotation.processing.processors.list= 
annotation.processing.run.all.processors=true 
annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output 
application.title=ContenedoresChart 
application.vendor=Diego 
build.classes.dir=${build.dir}/classes 
build.classes.excludes=**/*.java,**/*.form 
# This directory is removed when the project is cleaned: 
build.dir=build 
build.generated.dir=${build.dir}/generated 
build.generated.sources.dir=${build.dir}/generated-sources 
# Only compile against the classpath explicitly listed here: 
build.sysclasspath=ignore 
build.test.classes.dir=${build.dir}/test/classes 
build.test.results.dir=${build.dir}/test/results 
compile.on.save=true 
compile.on.save.unsupported.javafx=true 
# Uncomment to specify the preferred debugger connection transport: 
#debug.transport=dt_socket 
debug.classpath=\ 
    ${run.classpath} 
debug.test.classpath=\ 
    ${run.test.classpath} 
# This directory is removed when the project is cleaned: 
dist.dir=dist 
dist.jar=${dist.dir}/ContenedoresChart.jar 
dist.javadoc.dir=${dist.dir}/javadoc 
endorsed.classpath= 
excludes= 
file.reference.commons-io-2.4.jar=src\\contenedoreschart\\commons-io-2.4.jar 
file.reference.guava-18.0.jar=src\\contenedoreschart\\guava-18.0.jar 
file.reference.json-simple-1.1.1.jar=src\\contenedoreschart\\json-simple-1.1.1.jar 
includes=** 
# Non-JavaFX jar file creation is deactivated in JavaFX 2.0+ projects 
jar.archive.disabled=true 
jar.compress=false 
javac.classpath=\ 
    ${javafx.classpath.extension}:\ 
    ${file.reference.commons-io-2.4.jar}:\ 
    ${file.reference.guava-18.0.jar}:\ 
    ${file.reference.json-simple-1.1.1.jar} 
# Space-separated list of extra javac options 
javac.compilerargs= 
javac.deprecation=false 
javac.processorpath=\ 
    ${javac.classpath} 
javac.source=1.8 
javac.target=1.8 
javac.test.classpath=\ 
    ${javac.classpath}:\ 
    ${build.classes.dir} 
javac.test.processorpath=\ 
    ${javac.test.classpath} 
javadoc.additionalparam= 
javadoc.author=false 
javadoc.encoding=${source.encoding} 
javadoc.noindex=false 
javadoc.nonavbar=false 
javadoc.notree=false 
javadoc.private=false 
javadoc.splitindex=true 
javadoc.use=true 
javadoc.version=false 
javadoc.windowtitle= 
javafx.application.implementation.version=1.0 
javafx.binarycss=false 
javafx.classpath.extension=\ 
    ${java.home}/lib/javaws.jar:\ 
    ${java.home}/lib/deploy.jar:\ 
    ${java.home}/lib/plugin.jar 
javafx.deploy.adddesktopshortcut=false 
javafx.deploy.addstartmenushortcut=false 
javafx.deploy.allowoffline=true 
# If true, application update mode is set to 'background', if false, update mode is set to 'eager' 
javafx.deploy.backgroundupdate=false 
javafx.deploy.disable.proxy=false 
javafx.deploy.embedJNLP=true 
javafx.deploy.includeDT=true 
javafx.deploy.installpermanently=false 
javafx.deploy.permissionselevated=true 
# Set true to prevent creation of temporary copy of deployment artifacts before each run (disables concurrent runs) 
javafx.disable.concurrent.runs=false 
# Set true to enable multiple concurrent runs of the same WebStart or Run-in-Browser project 
javafx.enable.concurrent.external.runs=false 
# This is a JavaFX project 
javafx.enabled=true 
javafx.fallback.class=com.javafx.main.NoJavaFXFallback 
# Main class for JavaFX 
javafx.main.class=contenedoreschart.ContenedoresChart 
javafx.preloader.class= 
# This project does not use Preloader 
javafx.preloader.enabled=false 
javafx.preloader.jar.filename= 
javafx.preloader.jar.path= 
javafx.preloader.project.path= 
javafx.preloader.type=none 
# Set true for GlassFish only. Rebases manifest classpaths of JARs in lib dir. Not usable with signed JARs. 
javafx.rebase.libs=false 
javafx.run.height=600 
javafx.run.width=800 
javafx.signing.blob=false 
javafx.signing.enabled=true 
javafx.signing.type=self 
# Pre-JavaFX 2.0 WebStart is deactivated in JavaFX 2.0+ projects 
jnlp.enabled=false 
# Main class for Java launcher 
main.class=com.javafx.main.Main 
# For improved security specify narrower Codebase manifest attribute to prevent RIAs from being repurposed 
manifest.custom.codebase=* 
# Specify Permissions manifest attribute to override default (choices: sandbox, all-permissions) 
manifest.custom.permissions= 
manifest.file=manifest.mf 
meta.inf.dir=${src.dir}/META-INF 
mkdist.disabled=false 
native.bundling.enabled=false 
platform.active=default_platform 
run.classpath=\ 
    ${dist.jar}:\ 
    ${javac.classpath}:\ 
    ${build.classes.dir} 
run.test.classpath=\ 
    ${javac.test.classpath}:\ 
    ${build.test.classes.dir} 
source.encoding=UTF-8 
src.dir=src 
test.src.dir=test 
+0

Я никогда не видел абсолютного URL-адреса, указанного в теге jar. Это разрешено? – Roland

+0

Это было не абсолютное, и я изменил его на абсолютное, потому что я был жестким JNLP, проблема была связана с абсолютным URL-адресом. –

+0

Вы не должны этого делать. Банка должна быть частью пути к классам. Тег codebase используется для URL-адреса. Можете ли вы опубликовать полный jnlp? – Roland

ответ

0

мне пришлось вручную скопировать все содержимое в генерируемый HTML и JNLP в новые файлы, загружать эти файлы к сервер и удалить старые, и по какой-то причине он сработал. Может быть, ошибка? Я не знаю.

+0

Что вы понимаете, вручную копируя содержимое? Как это имеет значение? –

+0

Я имею в виду помещение двух окон бок о бок и копирование содержимого из оригинала в новый символ файла по символу. У меня нет единого ключа, почему это сработало, когда я просмотрел исходный файл с помощью Janela, он показал ошибку с символами, которые не были видны, возможно, в автогенерированном JNLP был невидимый символ, и, скопировав его вручную, скрытые символы не были в файл больше, это моя лучшая догадка. –