2014-09-09 2 views
1

Я работаю над проектом Java. Теперь все закончилось, но запуск Java Web не работает. Я компилирую программу и помещаю файлы dist на моем Tomcat Server. Я хочу, чтобы клиенты загружали мою программу и использовали ее в качестве настольного приложения.Java Web Start не работает

Я могу запустить программу внутри NetBeans IDE просто отлично, однако, когда я пытаюсь использовать файл .jnlp, он дает ошибки. До недавнего времени мне удалось запустить программу с помощью jnlp, так или иначе она дает ниже ошибок. Я все еще могу запустить программу с исполняемым банком, но мне отчаянно нужно использовать Java Web Start.

`Exception in thread "Abandoned connection cleanup thread" java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "setContextClassLoader") 
    at java.security.AccessControlContext.checkPermission(Unknown Source) 
    at java.security.AccessController.checkPermission(Unknown Source) 
    at java.lang.SecurityManager.checkPermission(Unknown Source) 
    at com.sun.javaws.security.JavaWebStartSecurity.checkPermission(Unknown Source) 
    at java.lang.Thread.setContextClassLoader(Unknown Source) 
    at com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:38) 
Exception in thread "AWT-EventQueue-2" java.lang.ExceptionInInitializerError 
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:298) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at dbo.dealSave.user(dealSave.java:364) 
    at TradeX.uyegiris.jButton1ActionPerformed(uyegiris.java:177) 
    at TradeX.uyegiris.access$100(uyegiris.java:20) 
    at TradeX.uyegiris$2.actionPerformed(uyegiris.java:81) 
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) 
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source) 
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) 
    at java.awt.Component.processMouseEvent(Unknown Source) 
    at javax.swing.JComponent.processMouseEvent(Unknown Source) 
    at java.awt.Component.processEvent(Unknown Source) 
    at java.awt.Container.processEvent(Unknown Source) 
    at java.awt.Component.dispatchEventImpl(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Window.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
    at java.awt.EventQueue.access$400(Unknown Source) 
    at java.awt.EventQueue$3.run(Unknown Source) 
    at java.awt.EventQueue$3.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
    at java.awt.EventQueue$4.run(Unknown Source) 
    at java.awt.EventQueue$4.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
    at java.awt.EventQueue.dispatchEvent(Unknown Source) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.run(Unknown Source) 
Caused by: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "file.encoding" "read") 
    at java.security.AccessControlContext.checkPermission(Unknown Source) 
    at java.security.AccessController.checkPermission(Unknown Source) 
    at java.lang.SecurityManager.checkPermission(Unknown Source) 
    at com.sun.javaws.security.JavaWebStartSecurity.checkPermission(Unknown Source) 
    at java.lang.SecurityManager.checkPropertyAccess(Unknown Source) 
    at java.lang.System.getProperty(Unknown Source) 
    at com.mysql.jdbc.StringUtils.<clinit>(StringUtils.java:70) 
    ... 43 more 
` 

Ниже представлен файл jnlp. Извините, слишком много времени. Я могу предоставить дополнительную информацию.

`<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<jnlp codebase="http://192.168.0.162:9999/" href="launch.jnlp" spec="1.0+"> 
    <information> 
     <title>Unit Elektrik Trader Team</title> 
     <vendor>seckin.celik</vendor> 
     <homepage href=""/> 
     <description>Versiyon 1</description> 
     <description kind="short">Unit Elektrik Trader Team</description> 
    <offline-allowed/> 
</information> 
    <update check="background"/> 
    <resources> 
     <j2se version="1.7+"/> 
     <jar href="Trade.jar" main="true"/> 
    <jar href="lib/jxl.jar"/> 
<jar href="lib/swingx-all-1.6.4.jar"/> 
<jar href="lib/mysql-connector-java-5.1.23-bin.jar"/> 
<jar href="lib/AbsoluteLayout.jar"/> 
<jar href="lib/beansbinding-1.2.1.jar"/> 
<jar href="lib/antlr-2.7.6.jar"/> 
<jar href="lib/cglib-2.2.jar"/> 
<jar href="lib/commons-collections-3.1.jar"/> 
<jar href="lib/dom4j-1.6.1.jar"/> 
<jar href="lib/jta-1.1.jar"/> 
<jar href="lib/hibernate-core-3.6.10.Final.jar"/> 
<jar href="lib/hibernate-commons-annotations-3.2.0.Final.jar"/> 
<jar href="lib/hibernate-entitymanager-3.6.10.Final.jar"/> 
<jar href="lib/hibernate-tools-3.6.0.CR1.jar"/> 
<jar href="lib/javassist-3.12.0.GA.jar"/> 
<jar href="lib/c3p0-0.9.1.jar"/> 
<jar href="lib/oscache-2.1.jar"/> 
<jar href="lib/slf4j-api-1.6.1.jar"/> 
<jar href="lib/slf4j-simple-1.6.1.jar"/> 
<jar href="lib/hibernate-jpa-2.0-api-1.0.1.Final.jar"/> 
<jar href="lib/dom4j-1.6.1.jar"/> 
<jar href="lib/antlr-2.7.6.jar"/> 
<jar href="lib/cglib-2.2.jar"/> 
<jar href="lib/commons-collections-3.1.jar"/> 
<jar href="lib/jta-1.1.jar"/> 
<jar href="lib/hibernate-core-3.6.10.Final.jar"/> 
<jar href="lib/hibernate-commons-annotations-3.2.0.Final.jar"/> 
<jar href="lib/hibernate-entitymanager-3.6.10.Final.jar"/> 
<jar href="lib/hibernate-tools-3.6.0.CR1.jar"/> 
<jar href="lib/javassist-3.12.0.GA.jar"/> 
<jar href="lib/c3p0-0.9.1.jar"/> 
<jar href="lib/oscache-2.1.jar"/> 
<jar href="lib/slf4j-api-1.6.1.jar"/> 
<jar href="lib/slf4j-simple-1.6.1.jar"/> 
<jar href="lib/jaxb-impl.jar"/> 
<jar href="lib/jaxb-xjc.jar"/> 
<jar href="lib/FastInfoset.jar"/> 
<jar href="lib/gmbal-api-only.jar"/> 
<jar href="lib/ha-api.jar"/> 
<jar href="lib/javax.mail_1.4.jar"/> 
<jar href="lib/jaxws-rt.jar"/> 
<jar href="lib/jaxws-tools.jar"/> 
<jar href="lib/management-api.jar"/> 
<jar href="lib/mimepull.jar"/> 
<jar href="lib/policy.jar"/> 
<jar href="lib/saaj-impl.jar"/> 
<jar href="lib/stax-ex.jar"/> 
<jar href="lib/stax2-api.jar"/> 
<jar href="lib/streambuffer.jar"/> 
<jar href="lib/woodstox-core-asl.jar"/> 
<jar href="lib/jaxws-api.jar"/> 
<jar href="lib/jsr181-api.jar"/> 
<jar href="lib/javax.annotation.jar"/> 
<jar href="lib/saaj-api.jar"/> 
<jar href="lib/activation.jar"/> 
<jar href="lib/jaxb-api.jar"/> 
<jar href="lib/jsr173_1.0_api.jar"/> 
</resources> 
    <application-desc main-class="TradeX.uyegiris"> 
    </application-desc> 
</jnlp>` 

ответ

2

Как указывает ошибка, у вас возникли проблемы с разрешением.
(Вызванный: java.security.AccessControlException: доступ запрещен ("java.util.PropertyPermission" "file.encoding" "читать"))

Кроме того, вам не хватает безопасности -tag в вашем JNLP:

<?xml version="1.0" encoding="utf-8"?> 
<jnlp spec="1.0+" codebase="http://localhost:8585/" href="Test.jnlp"> 
    <information> 
     <title>Jnlp Test</title> 
     <vendor>Test</vendor> 
     <homepage href="http://localhost:8585/" /> 
     <description>Test</description> 
    </information> 
    <security> 
     <all-permissions/> <!-- SEE HERE FOR EXAMPLE --!> 
    </security> 
    <resources> 
     <j2se version="1.6+" /> 
     <jar href="TestJnlp.jar" /> 
    </resources> 
    <application-desc main-class="com.test.TestJnlp" /> 
</jnlp> 

ВАЖНО EDIT:
на Java 7u51, есть некоторые изменения в безопасности!
вы можете проверить следующее:
https://blogs.oracle.com/java-platform-group/entry/new_security_requirements_for_rias

одаривать-Info также должна быть добавлена ​​к META-INF/MANIFEST.MF!

+0

Я попытался добавить теги безопасности. Странно даже после добавления тегов я получаю Exception в потоке «Abandoned connection cleanup thread» java.security.AccessControlException: access denied («java.lang.RuntimePermission» «setContextClassLoader») Исключение в потоке «AWT-EventQueue-2» java.lang.ExceptionInInitializerError Вызвано: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "file.encoding" "read") –

+0

Не могли бы вы разместить свой * обновленный JNLP? Потому что вы написали «Я пытался добавить теги безопасности». Но есть только ** один ** тег (с закрывающим тегом) – Ben

+0

я отредактировал мое сообщение ... – Ben

0

По умолчанию приложение Java Web Start запускается в изолированной программной среде (например, апплете). Похоже, что ошибка связана с отсутствием разрешения на чтение системного свойства file.encoding. Вам необходимо определить в своем jnlp уровень разрешения, который требуется вашему приложению. Добавление следующего элемента должно исправить вашу проблему разрешения.

<security> 
    <all-permissions/> 
</security> 
Смежные вопросы