[英]application migration from weblogic 10.2.0 to jboss 6.1.0
我是Jboss服务器的新手。 我正在将J2ee应用程序从Weblogic 10.2迁移到JBoss EAP 6.1.0。 迁移时,我收到以下错误消息。 如果有人知道解决方案,请提供帮助。
该应用程序已成功部署在服务器上,但是当我尝试通过本地主机访问该应用程序时,它将引发NullPointerException。
错误信息:
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)java.lang.NullPointerException
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在javax.naming.NameImpl。(NameImpl.java:264)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在javax.naming.CompositeName。(CompositeName.java:214)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在org.jboss.as.naming.util.NameParser.parse(NameParser.java:49)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在org.jboss.as.naming.NamingContext.parseName(NamingContext.java:491)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在org.jboss.as.naming.NamingContext.lookup(NamingContext.java:183)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在org.jboss.as.naming.NamingContext.lookup(NamingContext.java:179)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在javax.naming.InitialContext.lookup(InitialContext.java:392)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在com.trifecta.pfizer.dao.UserProfileDAO.populate(UserProfileDAO.java:51)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在com.trifecta.pfizer.servlet.PfizerSiteController.doFilter(PfizerSiteController.java:394)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在com.trifecta.pfizer.servlet.PfizerSiteController.performTask(PfizerSiteController.java:163)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在com.trifecta.pfizer.servlet.PfizerSiteController.doPost(PfizerSiteController.java:546)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java:653)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)在org.apache.tomcat.util.net.JIoEndpoint $ Worker.run(JIoEndpoint.java:920)
17:34:16,811错误[stderr](http-localhost / 127.0.0.1:8080-2)at java.lang.Thread.run(Thread.java:619)
请帮我解决问题?
码:
try
{
if(sqlHome == null)
{
/* Properties jndiProps = new Properties();
jndiProps.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
jndiProps.put(Context.PROVIDER_URL,"jnp://localhost:9990");
jndiProps.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
*/ // create a context passing these properties
Context ctx = new InitialContext();
System.out.println("check1...");
//Object obj = ctx.lookup("SQLHelperSFOHome");
//java:app/SQLHelperSFO
System.out.println("check2...");
//sqlHome=(SQLHelperSFOHome)PortableRemoteObject.narrow(obj,SQLHelperSFOHome.class);
//System.out.println(PortableRemoteObject.narrow(ctx.lookup("SQLHelperSFOHome"),SQLHelperSFOHome.class).toString()+"2");
sqlHome = (SQLHelperSFOHome)PortableRemoteObject.narrow(ctx.lookup("SQLHelperSFOHome"),SQLHelperSFOHome.class);
}
sqlsfo = sqlHome.create();
sqlsfo.initialize(DATASOURCE_JNDINAME);
}
catch(Exception e)
{
e.printStackTrace();
throw new DataAccessException("UserProfileDAO","populate",e.getMessage());
}
我尝试通过以下方式更改初始上下文:
Properties jndiProps = new Properties();
jndiProps.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
jndiProps.put(Context.PROVIDER_URL,"jnp://localhost:9990");
jndiProps.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
Context ctx = new InitialContext(jndiProps);
另外,此方法中使用的sysout语句不会显示在控制台上。
而不是使用
ctx.lookup("EJBclassName");
我们用了 :
ctx.lookup("java:global/EARname/EJBprojectName/EJBclassName!AbsoluteNameOfEJBClass");
有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.