Hi, I have run into the same problem discussed in thread http://www.jboss.com/index.html?module=bb&op=viewtopic&t=71090. So as not to risk the ire of adrian, I have not hijacked that thread; but I was unsure to which forum to direct this. My apologies if my aim is bad.
To summarize the problem in that thread, I have a single ear file containing a war file and a jar file. The war contains a servlet that makes EJB calls to session beans in the jar file. I have found that I am unable to create a local interface to my session beans in the servlet; it fails with "Invalid invocation..." EJBExceptions. However, if I change them to remote EJB interfaces, everything works great. Also, when I change the jbossweb values for Java2ClassLoadingCompliance and UseJBossWebLoader from the default false values to true, the local calls work fine (this is my current solution, taken from the above thread). Details follow at the bottom of this post, to avoid clutter. My question is slightly different from in the above thread. 1. Assuming that changing the Java2ClassLoadingCompliance and UseJBossWebLoader is the correct solution to the problem, is there a way to achieve this behavior on an application basis? That is, if I am forced to deploy my ear into a JBoss4.0.3SP1 installation which has not changed these values (the default config), and I am not permitted to change them just for my app, can my app override them somehow to make it work for me? 2. Having read the classloading wiki pages (ClassLoadingConfiguration and JBossClassLoadingUseCases), it is likely that I simply do not fully grok this wizardry. Is my configuration below just plain incorrect? Could my war or jar files be incorrectly packaged? Can it truly be that this is the only way to get local EJB calls to work within an ear in JBoss4.0.3SP1 (this is hard for me to believe, but it is what I am experiencing...)? Thanks for your time. Details: JBoss4.0.3SP1 Windows XP (Hopefully) relevant contents of various config files: deploy/jbossweb-tomcat55.sar/META-INF/jboss-service.xml (these values cause the local EJB creates to fail -- if I set them to true, it all works; so this is the behavior I would like to override, assuming this is a correct solution to the problem): <!-- Get the flag indicating if the normal Java2 parent first class | loading model should be used over the servlet 2.3 web container first | model. | --> | <attribute name="Java2ClassLoadingCompliance">false</attribute> | <!-- A flag indicating if the JBoss Loader should be used. This loader | uses a unified class loader as the class loader rather than the tomca | t | specific class loader. | The default is false to ensure that wars have isolated class loading | for duplicate jars and jsp files. | --> | <attribute name="UseJBossWebLoader">false</attribute> deploy/ear-deployer.xml: <!-- A flag indicating if ear deployments should have their own scoped | class loader to isolate their classes from other deployments. | --> | <attribute name="Isolated">true</attribute> | <!-- A flag indicating if the ear components should have in VM call | optimization disabled. | --> | <attribute name="CallByValue">true</attribute> deploy/naming-service.xml: <!-- The call by value mode. true if all lookups are unmarshalled using | the caller's TCL, false if in VM lookups return the value by reference. | --> | <attribute name="CallByValue">true</attribute> In my ear file (META-INF/jboss-app.xml): <jboss-app> | <loader-repository> | my_company.com:loader=my_app.ear | <loader-repository-config> | java2ParentDelegation=true | </loader-repository-config> | </loader-repository> | </jboss-app> Lastly, the exception I get attempting to create a local interface to my session bean. The line in my code that is referenced in the trace is simply a call to the create() method off of a home interface. The exception is: 09:15:15,265 ERROR [LogInterceptor] EJBException in method: public abstract com. | collabraspace.cserver.interfaces.CampusServiceLocal com.collabraspace.cserver.in | terfaces.CampusServiceLocalHome.create() throws javax.ejb.CreateException: | javax.ejb.EJBException: Invalid invocation, check your deployment packaging, met | hod=public abstract com.collabraspace.cserver.interfaces.CampusServiceLocal com. | collabraspace.cserver.interfaces.CampusServiceLocalHome.create() throws javax.ej | b.CreateException | at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invokeHo | me(StatelessSessionContainer.java:161) | at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invo | keHome(CachedConnectionInterceptor.java:180) | at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invokeHome( | StatelessSessionInstanceInterceptor.java:83) | at org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractIntercep | tor.java:90) | at org.jboss.ejb.plugins.CallValidationInterceptor.invokeHome(CallValida | tionInterceptor.java:41) | at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInte | rceptor.java:110) | at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxIntercep | torCMT.java:335) | at org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.ja | va:146) | at org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityIntercep | tor.java:130) | at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:1 | 21) | at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invokeHome(ProxyF | actoryFinderInterceptor.java:93) | at org.jboss.ejb.SessionContainer.internalInvokeHome(SessionContainer.ja | va:613) | at org.jboss.ejb.Container.invoke(Container.java:894) | at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invokeHome(BaseLoca | lProxyFactory.java:344) | at org.jboss.ejb.plugins.local.LocalHomeProxy.invoke(LocalHomeProxy.java | :118) | at $Proxy172.create(Unknown Source) | at com.collabraspace.csuite.server.i9n.ejb.CSuiteAdminEJBTest.setUp(CSui | teAdminEJBTest.java:194) | at junit.framework.TestCase.runBare(TestCase.java:125) | at org.apache.cactus.internal.AbstractCactusTestCase.runBareServer(Abstr | actCactusTestCase.java:153) | at org.apache.cactus.internal.server.AbstractWebTestCaller.doTest(Abstra | ctWebTestCaller.java:119) | at org.apache.cactus.internal.server.AbstractWebTestController.handleReq | uest_aroundBody0(AbstractWebTestController.java:93) | at org.apache.cactus.internal.server.AbstractWebTestController.handleReq | uest_aroundBody1$advice(AbstractWebTestController.java:224) | at org.apache.cactus.internal.server.AbstractWebTestController.handleReq | uest(AbstractWebTestController.java) | at org.apache.cactus.server.ServletTestRedirector.doPost_aroundBody2(Ser | vletTestRedirector.java:101) | at org.apache.cactus.server.ServletTestRedirector.doPost_aroundBody3$adv | ice(ServletTestRedirector.java:224) | at org.apache.cactus.server.ServletTestRedirector.doPost(ServletTestRedi | rector.java) | at org.apache.cactus.server.ServletTestRedirector.doGet_aroundBody0(Serv | letTestRedirector.java:72) | at org.apache.cactus.server.ServletTestRedirector.doGet_aroundBody1$advi | ce(ServletTestRedirector.java:224) | at org.apache.cactus.server.ServletTestRedirector.doGet(ServletTestRedir | ector.java) | at javax.servlet.http.HttpServlet.service(HttpServlet.java:697) | at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl | icationFilterChain.java:252) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF | ilterChain.java:173) | at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFi | lter.java:81) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl | icationFilterChain.java:202) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF | ilterChain.java:173) | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV | alve.java:213) | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV | alve.java:178) | at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrinc | ipalValve.java:39) | at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Securit | yAssociationValve.java:159) | at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica | torBase.java:407) | at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValv | e.java:59) | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j | ava:126) | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j | ava:105) | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal | ve.java:107) | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav | a:148) | at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java | :856) | at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce | ssConnection(Http11Protocol.java:744) | at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpo | int.java:527) | at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWor | kerThread.java:112) | at java.lang.Thread.run(Thread.java:534) View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3907058#3907058 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3907058 ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php _______________________________________________ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user