2017-03-08 6 views
2

Java 9를 사용하여 응용 프로그램 (Java Swing에서 개발 한 프론트 엔드, Wildfly 8에서 EJB를 개발 한 서버)을 실행하려고했습니다. 클라이언트가 EJB 연결을 시도 할 때 다음과 같은 예외 가지고 : 나는 자바 (9)에 도입 된 새로운 모듈 관리에 일부 문제가 볼Java 9로 모듈을 실행하면 java.base가 열리지 않습니다.

09:53:42,358 INFO [xnio] XNIO version 3.2.0.Final 
09:53:42,465 INFO [nio] XNIO NIO Implementation Version 3.2.0.Final 
09:53:42,507 DEBUG [nio] Started channel thread 'Remoting "config-based-naming-client-endpoint" I/O-1', selector [email protected] 
RmiServiceFactpry ExceptionInInitializerError 
java.lang.ExceptionInInitializerError 
    at org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver.<init>(RemotingConnectionEJBReceiver.java:148) 
    at org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver.<init>(RemotingConnectionEJBReceiver.java:106) 
    at org.jboss.ejb.client.EJBClientContext.registerConnection(EJBClientContext.java:465) 
    at org.jboss.naming.remote.client.ejb.RemoteNamingStoreEJBClientHandler.associate(RemoteNamingStoreEJBClientHandler.java:78) 
    at org.jboss.naming.remote.protocol.v1.RemoteNamingStoreV1.<init>(RemoteNamingStoreV1.java:71) 
    at org.jboss.naming.remote.protocol.v1.VersionOne.getRemoteNamingStore(VersionOne.java:50) 
    at org.jboss.naming.remote.protocol.Versions.getRemoteNamingStore(Versions.java:55) 
    at org.jboss.naming.remote.client.RemoteContextFactory.createVersionedStore(RemoteContextFactory.java:73) 
    at org.jboss.naming.remote.client.HaRemoteNamingStore.failOverSequence(HaRemoteNamingStore.java:202) 
    at org.jboss.naming.remote.client.HaRemoteNamingStore.namingStore(HaRemoteNamingStore.java:149) 
    at org.jboss.naming.remote.client.HaRemoteNamingStore.namingOperation(HaRemoteNamingStore.java:130) 
    at org.jboss.naming.remote.client.HaRemoteNamingStore.lookup(HaRemoteNamingStore.java:272) 
    at org.jboss.naming.remote.client.RemoteContext.lookup(RemoteContext.java:79) 
    at org.jboss.naming.remote.client.RemoteContext.lookup(RemoteContext.java:83) 
    at java.naming/javax.naming.InitialContext.lookup(Unknown Source) 
    at com.dataloy.client.core.RmiServiceFactory.createRemote(RmiServiceFactory.java:105) 
    at com.dataloy.client.core.RmiServiceFactory.getServiceImpl(RmiServiceFactory.java:96) 
    at com.dataloy.core.AbstractServiceFactory.getService(AbstractServiceFactory.java:58) 
    at com.dataloy.DataloyEngine.getService(DataloyEngine.java:198) 
    at com.dataloy.DataloyEngine.login(DataloyEngine.java:548) 
    at com.dataloy.client.login.LoginPanel.doLogin(LoginPanel.java:511) 
    at com.dataloy.client.login.LoginPanel.access$500(LoginPanel.java:56) 
    at com.dataloy.client.login.LoginPanel$5.run(LoginPanel.java:452) 
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make java.io.OptionalDataException(boolean) accessible: module java.base does not "opens java.io" to unnamed module @312002a1 
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(Unknown Source) 
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(Unknown Source) 
    at java.base/java.lang.reflect.Constructor.checkCanSetAccessible(Unknown Source) 
    at java.base/java.lang.reflect.Constructor.setAccessible(Unknown Source) 
    at org.jboss.marshalling.Marshalling$OptionalDataExceptionCreateAction$1.run(Marshalling.java:385) 
    at org.jboss.marshalling.Marshalling$OptionalDataExceptionCreateAction$1.run(Marshalling.java:381) 
    at java.base/java.security.AccessController.doPrivileged(Native Method) 
    at org.jboss.marshalling.Marshalling$OptionalDataExceptionCreateAction.<init>(Marshalling.java:381) 
    at org.jboss.marshalling.Marshalling$OptionalDataExceptionCreateAction.<init>(Marshalling.java:376) 
    at org.jboss.marshalling.Marshalling.<clinit>(Marshalling.java:374) 
    ... 23 more 

을, 그러나 나는 무엇을해야하는지 이해할 수 없습니다.

감사합니다, 안드레아

+4

봅니다 추가하는'--add-열립니다 반사 위해 java.io 패키지를 엽니 다 자바 명령 줄에 java.base/java.io = ALL-UNNAMED'을. 배경 : http://mail.openjdk.java.net/pipermail/jdk9-dev/2016-November/005276.html –

답변

3

this answer 당으로 당신은 응용 프로그램을 시작하는 java 명령에 --add-opens java.base/java.io=ALL-UNNAMED를 추가해야합니다.

0

추가 다음 JVM 매개 변수 :

--add-exports=java.base/sun.nio.ch=ALL-UNNAMED 
--add-opens=java.base/java.lang=ALL-UNNAMED 
--add-opens=java.base/java.lang.reflect=ALL-UNNAMED 
--add-opens=java.base/java.io=ALL-UNNAMED 
--add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED 

가 더 이상 도달하지 위의 예외, 그것은이 예외 전에 실패

java.lang.ClassNotFoundException: com.dataloy.client.Main 
    at [email protected]/com.sun.deploy.security.DeployURLClassLoader.findClass(Unknown Source) 
    at [email protected]/com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source) 
    at java.base/java.lang.ClassLoader.loadClass(Unknown Source) 
    at [email protected]/com.sun.jnlp.JNLPClassLoader.loadClass(Unknown Source) 
    at java.base/java.lang.ClassLoader.loadClass(Unknown Source) 
    at [email protected]/com.sun.javaws.Launcher.doLaunchApp(Unknown Source) 
    at [email protected]/com.sun.javaws.Launcher.run(Unknown Source) 
    at java.base/java.lang.Thread.run(Unknown Source) 

나는 눈에 보이는 이상의 모듈을해야하지만 어려움을 겪고 어느 것을 이해하는지.

안드레아