2015-06-10 98 views
1

我正在嘗試構建一個應用程序,該應用程序通過SCTP提供S6端點。我目前正在使用jDiameter 1.7.0-SNAPSHOT和SCTP 1.5.0,捆綁在一個EAR中,該EAR被部署到wildfly 8.我已經嘗試使用1.6.0.Final,但具有相同的效果。JDiameter和SCTP拋出SCTP管理異常

如果我包括的jboss-beans.xml文件初始化SCTPManagement,我得到一個初始化錯誤JBAS ...:Null值

如果我不使用JBoss的豆,我得到一個FileNotFound異常並在稍後出現無法創建服務器套接字的錯誤。 (但它看起來像真正的起源是SCTP規則文件的FileNotFound異常)。

Error while persisting the Rule state in file: java.io.FileNotFoundException: (No such file or directory) 
at java.io.FileOutputStream.open0(Native Method) [rt.jar:1.8.0_45] 
    at java.io.FileOutputStream.open(FileOutputStream.java:270) [rt.jar:1.8.0_45] 
    at java.io.FileOutputStream.<init>(FileOutputStream.java:213) [rt.jar:1.8.0_45] 
    at java.io.FileOutputStream.<init>(FileOutputStream.java:101) [rt.jar:1.8.0_45] 
    at org.mobicents.protocols.sctp.ManagementImpl.store(ManagementImpl.java:431) [sctp-impl-1.5.0.FINAL.jar:1.5.0.FINAL] 
    at org.mobicents.protocols.sctp.ManagementImpl.setSingleThread(ManagementImpl.java:208) [sctp-impl-1.5.0.FINAL.jar:1.5.0.FINAL] 
    at org.jdiameter.server.impl.io.sctp.SCTPTransportServer.startServer(SCTPTransportServer.java:136) [jdiameter-impl-1.6.0.FINAL.jar:1.6.0.FINAL] 
    at org.jdiameter.server.impl.io.sctp.SCTPServerConnection.<init>(SCTPServerConnection.java:80) [jdiameter-impl-1.6.0.FINAL.jar:1.6.0.FINAL] 
    at org.jdiameter.server.impl.io.sctp.NetworkGuard.<init>(NetworkGuard.java:76) [jdiameter-impl-1.6.0.FINAL.jar:1.6.0.FINAL] 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [rt.jar:1.8.0_45] 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) [rt.jar:1.8.0_45] 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [rt.jar:1.8.0_45] 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422) [rt.jar:1.8.0_45] 
    at org.jdiameter.server.impl.io.TransportLayerFactory.createNetworkGuard(TransportLayerFactory.java:143) [jdiameter-impl-1.6.0.FINAL.jar:1.6.0.FINAL] 
    at org.jdiameter.server.impl.MutablePeerTableImpl.createNetworkGuard(MutablePeerTableImpl.java:397) [hss-ejb-DYNAMIC-SNAPSHOT.jar:] 
    at org.jdiameter.server.impl.MutablePeerTableImpl.start(MutablePeerTableImpl.java:352) [hss-ejb-DYNAMIC-SNAPSHOT.jar:] 
    at org.jdiameter.client.impl.StackImpl.startPeerManager(StackImpl.java:246) [jdiameter-impl-1.6.0.FINAL.jar:1.6.0.FINAL] 
    at org.jdiameter.client.impl.StackImpl.start(StackImpl.java:189) [jdiameter-impl-1.6.0.FINAL.jar:1.6.0.FINAL] 
    at com.nokia.whispernet.impl.S6aEndpointBean.init(S6aEndpointBean.java:70) [hss-ejb-DYNAMIC-SNAPSHOT.jar:] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_45] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0_45] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_45] 
    at java.lang.reflect.Method.invoke(Method.java:497) [rt.jar:1.8.0_45] 
    at org.jboss.as.ee.component.ManagedReferenceLifecycleMethodInterceptor.processInvocation(ManagedReferenceLifecycleMethodInterceptor.java:96) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) 
    at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) 
    at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doLifecycleInterception(Jsr299BindingsInterceptor.java:114) [wildfly-weld-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:103) [wildfly-weld-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) 
    at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:407) 
    at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:55) [weld-core-impl-2.2.6.Final.jar:2014-10-03 10:05] 
    at org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:83) [wildfly-weld-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) 
    at org.jboss.as.weld.injection.WeldInjectionInterceptor.processInvocation(WeldInjectionInterceptor.java:53) [wildfly-weld-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) 
    at org.jboss.as.ee.component.ManagedReferenceFieldInjectionInterceptorFactory$ManagedReferenceFieldInjectionInterceptor.processInvocation(ManagedReferenceFieldInjectionInterceptorFactory.java:109) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) 
    at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) 
    at org.jboss.as.ee.component.AroundConstructInterceptorFactory$1.processInvocation(AroundConstructInterceptorFactory.java:28) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) 
    at org.jboss.as.weld.injection.WeldInterceptorInjectionInterceptor.processInvocation(WeldInterceptorInjectionInterceptor.java:56) [wildfly-weld-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) 
    at org.jboss.as.weld.ejb.Jsr299BindingsCreateInterceptor.processInvocation(Jsr299BindingsCreateInterceptor.java:94) [wildfly-weld-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) 
    at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) 
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:273) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.requiresNew(CMTTxInterceptor.java:369) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.as.ejb3.tx.LifecycleCMTTxInterceptor.processInvocation(LifecycleCMTTxInterceptor.java:66) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) 
    at org.jboss.as.weld.injection.WeldInjectionContextInterceptor.processInvocation(WeldInjectionContextInterceptor.java:43) [wildfly-weld-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) 
    at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) 
    at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45) [wildfly-ee-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) 
    at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) 
    at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:326) 
    at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) 
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) 
    at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:160) 
    at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:133) 
    at org.jboss.as.ee.component.BasicComponent.createInstance(BasicComponent.java:89) 
    at org.jboss.as.ejb3.component.singleton.SingletonComponent.getComponentInstance(SingletonComponent.java:122) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.as.ejb3.component.singleton.SingletonComponent.start(SingletonComponent.java:137) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final] 
    at org.jboss.as.ee.component.ComponentStartService$1.run(ComponentStartService.java:54) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [rt.jar:1.8.0_45] 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_45] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_45] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_45] 
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_45] 
    at org.jboss.threads.JBossThread.run(JBossThread.java:122) 


Unable to create server socket for LocalPeer 'hss.something.com' at 127.0.0.1:33000 (com.sun.nio.sctp.AssociationChangeNotification from [Module "deployment.hss-ear-DYNAMIC-SNAPSHOT.ear:main" from Service Module Loader]). 

正如我在jss7應用程序所看到的,它看起來像通過的jboss-豆初始化將是首選方法,但是這一次不工作:

<?xml version="1.0" encoding="UTF-8"?> 

<bean name="SCTPManagement" class="org.mobicents.protocols.sctp.ManagementImpl"> 
    <constructor> 
     <parameter>SCTPManagement</parameter> 
    </constructor> 
    <property name="persistDir">/tmp/</property> 
    <property name="singleThread">true</property> 
    <property name="connectDelay">30000</property> 
    <property name="workerThreads">10</property> 
    <property name="maxIOErrors">100</property> 


</bean> 

它既不適用於maxIOErrors也不適用於workerThreads。我錯過了什麼嗎?

回答

1

只是爲了防止任何人遇到同樣的問題。

原因是,較新的JBoss/Wildfly版本無法自動訪問所有的JDK類。

如果你想訪問com.sun.nio類,你必須添加一個jboss-deployment-structure來授予它訪問所需的包。

雖然通過jboss-beans.xml進行初始化仍然不起作用, (我刪除了文件,所以現在堆棧啓動)