Can't connect to Sun Naming Server from JBoss 7.2 webapp
jchase.aseg Sep 26, 2013 10:33 AMHi all,
I'm on CentOS 6.4 and I'm running /usr/java/jdk1.7.0_25/bin/orbd -ORBInitialPort 4244
to connect to a back end application server via CORBA from a webapp on the same machine. This setup worked fine in JBoss AS 6.1.0 and on Tomcat, but I'm having issues in JBoss EAP 6.1.0 and JBoss AS 7.2.0.Final.
When I execute this StartContext.java file from the command line, it works fine and echoes "Context created". I can then lookup my objects from the naming service as expected.
package mypkg;
import javax.naming.InitialContext;
import javax.naming.Context;
import java.util.Hashtable;
public class StartContext
{
public static void main(String args[]){
start();
};
public static void start(){
try{
Hashtable htEnv = new Hashtable();
htEnv.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.cosnaming.CNCtxFactory");
htEnv.put(Context.PROVIDER_URL, "iiop://localhost:4244");
Context context = new InitialContext(htEnv);
System.out.println("Context created");
} catch(Exception e) {
e.printStackTrace();
}
}
}
However, when I execute it using the following jsp then I can't connect to my name server.
<!doctype html>
<html>
<head>
<title>JSP Test</title>
</head>
<body>
<%@ page import="mypkg.StartContext" %>
<%
StartContext.start();
%>
</body>
</html>
When I packaged it into a helloworld.war file deployed in JBoss with standalone.sh, I got the following exception:
javax.naming.NamingException: JBAS011843: Failed instantiate InitialContextFactory com.sun.jndi.cosnaming.CNCtxFactory from classloader ModuleClassLoader for Module "deployment.helloworld.war:main" from Service Module Loader
To fix that, I had to package java's rt.jar and resource.jar in my WEB-INF/lib (which I thought was overkill, but that's another question...). Then I'd get:
java.lang.ClassNotFoundException: org.jacorb.orb.ORB from [Module "deployment.helloworld.war:main" from Service Module Loader]
To fix that, I had to add these to standalone.sh (it wasn't sufficient to use System.setProperty from within the java class):
-Dorg.omg.CORBA.ORBClass=com.sun.corba.se.internal.iiop.ORB
-Dorg.omg.CORBA.ORBSingletonClass=com.sun.corba.se.internal.corba.ORBSingleton
And now finally I'm stuck at this error which I can't seem to get past. I've tried using every combination of settings I can think of. Including a jndi.properties with my context factory and url seems to make things worse. Please help! What am I overlooking?
14:36:56,178 WARNING [javax.enterprise.resource.corba._DEFAULT_.rpc.transport] (http-/127.0.0.1:8080-1) "IOP00410201: (COMM_FAILURE) Connection failure: socketType: IIOP_CLEAR_TEXT; hostname: 127.0.0.1; port: 900": org.omg.CORBA.COMM_FAILURE
at com.sun.corba.se.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:2200) [rt.jar:1.7.0_25]
at com.sun.corba.se.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:2221) [rt.jar:1.7.0_25]
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:223) [rt.jar:1.7.0_25]
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:236) [rt.jar:1.7.0_25]
at com.sun.corba.se.impl.transport.SocketOrChannelContactInfoImpl.createConnection(SocketOrChannelContactInfoImpl.java:119) [rt.jar:1.7.0_25]
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.beginRequest(CorbaClientRequestDispatcherImpl.java:185) [rt.jar:1.7.0_25]
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.request(CorbaClientDelegateImpl.java:136) [rt.jar:1.7.0_25]
at com.sun.corba.se.impl.resolver.BootstrapResolverImpl.invoke(BootstrapResolverImpl.java:99) [rt.jar:1.7.0_25]
at com.sun.corba.se.impl.resolver.BootstrapResolverImpl.resolve(BootstrapResolverImpl.java:132) [rt.jar:1.7.0_25]
at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(CompositeResolverImpl.java:47) [rt.jar:1.7.0_25]
at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(CompositeResolverImpl.java:47) [rt.jar:1.7.0_25]
at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(CompositeResolverImpl.java:47) [rt.jar:1.7.0_25]
at com.sun.corba.se.impl.orb.ORBImpl.resolve_initial_references(ORBImpl.java:1169) [rt.jar:1.7.0_25]
at com.sun.jndi.cosnaming.CNCtx.setOrbAndRootContext(CNCtx.java:378) [rt.jar:1.7.0_25]
at com.sun.jndi.cosnaming.CNCtx.initUsingIiopUrl(CNCtx.java:327) [rt.jar:1.7.0_25]
at com.sun.jndi.cosnaming.CNCtx.initUsingUrl(CNCtx.java:282) [rt.jar:1.7.0_25]
at com.sun.jndi.cosnaming.CNCtx.initOrbAndRootContext(CNCtx.java:250) [rt.jar:1.7.0_25]
at com.sun.jndi.cosnaming.CNCtx.<init>(CNCtx.java:105) [rt.jar:1.7.0_25]
at com.sun.jndi.cosnaming.CNCtxFactory.getInitialContext(CNCtxFactory.java:49) [rt.jar:1.7.0_25]
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:684) [rt.jar:1.7.0_25]
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307) [rt.jar:1.7.0_25]
at javax.naming.InitialContext.init(InitialContext.java:242) [rt.jar:1.7.0_25]
at javax.naming.InitialContext.<init>(InitialContext.java:216) [rt.jar:1.7.0_25]
at mypkg.StartContext.start(StartContext.java:21) [mypkg.jar:]
at org.apache.jsp.hi_jsp._jspService(hi_jsp.java:65)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:69) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:365) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:309) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:242) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]
Caused by: java.net.ConnectException: Connection refused
at sun.nio.ch.Net.connect0(Native Method) [rt.jar:1.7.0_25]
at sun.nio.ch.Net.connect(Net.java:465) [rt.jar:1.7.0_25]
at sun.nio.ch.Net.connect(Net.java:457) [rt.jar:1.7.0_25]
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:639) [rt.jar:1.7.0_25]
at java.nio.channels.SocketChannel.open(SocketChannel.java:184) [rt.jar:1.7.0_25]
at com.sun.corba.se.impl.transport.DefaultSocketFactoryImpl.createSocket(DefaultSocketFactoryImpl.java:78) [rt.jar:1.7.0_25]
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:206) [rt.jar:1.7.0_25]
... 41 more
javax.naming.CommunicationException: Cannot connect to ORB [Root exception is org.omg.CORBA.COMM_FAILURE]
at com.sun.jndi.cosnaming.CNCtx.setOrbAndRootContext(CNCtx.java:400)
at com.sun.jndi.cosnaming.CNCtx.initUsingIiopUrl(CNCtx.java:327)
at com.sun.jndi.cosnaming.CNCtx.initUsingUrl(CNCtx.java:282)
at com.sun.jndi.cosnaming.CNCtx.initOrbAndRootContext(CNCtx.java:250)
at com.sun.jndi.cosnaming.CNCtx.<init>(CNCtx.java:105)
at com.sun.jndi.cosnaming.CNCtxFactory.getInitialContext(CNCtxFactory.java:49)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:684)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307)
at javax.naming.InitialContext.init(InitialContext.java:242)
at javax.naming.InitialContext.<init>(InitialContext.java:216)
at mypkg.StartContext.start(StartContext.java:21)
at org.apache.jsp.hi_jsp._jspService(hi_jsp.java:65)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:69)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:365)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:309)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:242)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920)
at java.lang.Thread.run(Thread.java:724)
Caused by: org.omg.CORBA.COMM_FAILURE
at com.sun.corba.se.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:2200)
at com.sun.corba.se.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:2221)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:223)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:236)
at com.sun.corba.se.impl.transport.SocketOrChannelContactInfoImpl.createConnection(SocketOrChannelContactInfoImpl.java:119)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.beginRequest(CorbaClientRequestDispatcherImpl.java:185)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.request(CorbaClientDelegateImpl.java:136)
at com.sun.corba.se.impl.resolver.BootstrapResolverImpl.invoke(BootstrapResolverImpl.java:99)
at com.sun.corba.se.impl.resolver.BootstrapResolverImpl.resolve(BootstrapResolverImpl.java:132)
at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(CompositeResolverImpl.java:47)
at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(CompositeResolverImpl.java:47)
at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(CompositeResolverImpl.java:47)
at com.sun.corba.se.impl.orb.ORBImpl.resolve_initial_references(ORBImpl.java:1169)
at com.sun.jndi.cosnaming.CNCtx.setOrbAndRootContext(CNCtx.java:378)
... 30 more
Caused by: java.net.ConnectException: Connection refused
at sun.nio.ch.Net.connect0(Native Method)
at sun.nio.ch.Net.connect(Net.java:465)
at sun.nio.ch.Net.connect(Net.java:457)
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:639)
at java.nio.channels.SocketChannel.open(SocketChannel.java:184)
at com.sun.corba.se.impl.transport.DefaultSocketFactoryImpl.createSocket(DefaultSocketFactoryImpl.java:78)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:206)
... 41 more