我正在构build一个简单的testing应用程序,它以GWT客户端为前端。 我正在使用JBOSS作为我的应用程序服务器,并且有在JBOSS上运行的远程服务。 Eclipse是我的开发环境。
虽然我尝试通过eclipse调用一个简单的JBOSS远程接口的hello方法,但它工作正常,JNDI查找工作正常,远程接口的方法得到正确调用。
当我在JBOSS上部署业务层,并保持GWT应用程序从Eclipse运行,当时也JNDI查找工作正常,远程接口的方法得到正确调用。
在第三种情况下,我在Tomcat上部署Web应用程序,在JBOSS上部署业务层,在这种情况下,JNDI查找工作正常,但问题是当我尝试调用远程接口的方法时,出现以下错误。
以下是我的简单代码。
===================代码============================== =====
尝试{GreetingServiceBI bi =(GreetingServiceBI)ServiceLocator.getInstance()。getRemoteService(GreetingServiceBI.class);
System.out.println(“BI初始化”);
的System.out.println(bi.getClass()的toString());
msg = bi.sayHi(input);
System.out.println(“BI说你好”);
catch(NamingException e){e.printStackTrace(); }
从Tomcat运行此代码时得到的exception我得到消息BI初始化类$ Proxy2之后,我从Tomcat日志
==================exception=============================== ======== 2010年10月21日下午3时24分53秒org.apache.catalina.core.ApplicationContext日志SEVERE:调度传入的RPC调用时exceptioncom.google.gwt.user.server.rpc.UnexpectedException:服务方法'公共抽象java.lang.String com.client.GreetingService.greetServer(java.lang.String)抛出java.lang.IllegalArgumentException'抛出一个意外的exception:java.lang.reflect.UndeclaredThrowableException com.google.gwt。 user.server.rpc.RPC.encodeResponseForFailure(RPC.java:378)com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:581)com.google.gwt.user.server。 rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:188)位于com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:224)上,位于com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet。 doPost(AbstractRemoteServiceServlet.java:62)在javax.servlet.http.HttpServlet.service(HttpServlet.java:637)在ja 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain。)上的org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)上的vax.servlet.http.HttpServlet.service(HttpServlet.java:717) java:206)org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)at org.apache.catalina.core .StandardHostValve.invoke(StandardHostValve.java:127)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)at org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler。进程(Http11Protocol.java:588)在org.apache.tomcat.util.net.JIoEndpoint $ Worker.run(JIoEndpoint.java :489)at java.lang.Thread.run(Unknown Source)引起的:java.lang.reflect.UndeclaredThrowableException at $ Proxy7.sayHi(Unknown Source)at com.server.GreetingServiceImpl.greetServer(GreetingServiceImpl.java:30)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:562)… 17更多导致:java.security.PrivilegedActionException:java.security.AccessController上的java.lang.reflect.InvocationTargetException。在org上的org.jboss.ejb3.security.client.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:59)的org.jboss.ejb3.security.client.SecurityActions.createSecurityContext(SecurityActions.java:657)处使用doPrivileged(Native Method)。 jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)at org.jboss.ejb 3.在org.jboss.aspects.remoting.PojiProxy.invoke上的org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)处的callback.IsLocalInterceptor.invoke(IsLocalInterceptor.java:76)(PojiProxy.java: 62)at $ Proxy8.invoke(Unknown Source)at org.jboss.ejb3.proxy.handler.ProxyInvocationHandlerBase.invoke(ProxyInvocationHandlerBase.java:261)at org.jboss.ejb3.proxy.handler.session.SessionSpecProxyInvocationHandlerBase.invoke(SessionSpecProxyInvocationHandlerBase .java:101)… 24更多由…引发:java.lang.reflect.InvocationTargetException在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本地方法)在sun.reflect.NativeConstructorAccessorImpl.newInstance(未知来源)在sun.reflect.DelegatingConstructorAccessorImpl .newInstance(Unknown Source)at org.jboss.security.SecurityContextFactory.createSecurityContext(SecurityContextFactory.java:117)at org.jboss.security.SecurityContextFactory.createSecurityContext(java.lang.reflect.Constructor.newInstance(Unknown Source) (SecurityContextFactory.java:76)at org.jboss.ejb3.security.client.SecurityActions $ 1.run(SecurityActions.java:662)… 34更多原因:java.lang.NoClassDefFoundError:javax / security / jacc / PolicyContextException在org.jboss.security.plugins.JBossSecurityContext。(JBossSecurityContext.java:82)… 41更多引起:java.lang.ClassNotFoundException:在org.apache.catalina.loader.WebappClassLoader的javax.security.jacc.PolicyContextException。 loadClass(WebappClassLoader.java:1645)at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)… 42 more
======================================我认为这是configuration问题,但我不能弄清楚。
我正处在一个生产周期的中间,我被困住了。
提前致谢。
根exception是java.lang.ClassNotFoundException: javax.security.jacc.PolicyContextException
这个类是在这个列表中的JEEjar中find的。
build议您尝试下载并将client.jar或jacc-1_0.jar放入TOMCAT_HOME/lib如果是Tomcat6),或者放在TOMCAT_HOME/server/lib如果Tomcat 5.5