Variable argument list in session bean method causes NoSuchM
ablevine1 Jun 1, 2009 9:12 PMI am in the process of upgrading from jboss 4.0.5 to jboss 5.1.0 and am getting NoSuchMethodErrors when accessing my session beans that have methods containing variable argument lists (...). Is this a know issue for jboss? I see something similar about weblogic. For example I have this method in my interface:
public interface ProductManagerSessionRemote { public <public <T extends PurchasableProduct> T loadPersonsOldestPurchasableProductOfType( T extends PurchasableProduct> T loadPersonsOldestPurchasableProductOfType( String personID, Class<T> purchasableProductClass, Status... statuses); }
I notice that it appears as this in the server log when jboss is parsing it. Why is it transient?:
public transient com.squaretrade.product2.PurchasableProduct com.squaretrade.product2.ProductManagerSessionImpl.loadPersonsOldestPurchasableProductOfType(java.lang.String,java.lang.Class,com.s quaretrade.enums.Status[])
When I try and access a different method on the session bean I get the following error:
java.lang.NoSuchMethodError: com.squaretrade.product2.ProductManagerSessionRemote.loadPersonsOldestPurchasableProductOfType(java.lang.String, java.lang.Class, [Lcom.squaretrade.enums.Status;) at $Proxy817.<clinit>(Unknown Source) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:494) at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:588) at org.jboss.ejb3.proxy.impl.objectfactory.ProxyObjectFactory.redefineProxyInTcl(ProxyObjectFactory.java:351) at org.jboss.ejb3.proxy.impl.objectfactory.session.SessionProxyObjectFactory.createProxy(SessionProxyObjectFactory.java:134) at org.jboss.ejb3.proxy.clustered.objectfactory.session.SessionClusteredProxyObjectFactory.getProxy(SessionClusteredProxyObjectFactory.java:87) at org.jboss.ejb3.proxy.impl.objectfactory.ProxyObjectFactory.getObjectInstance(ProxyObjectFactory.java:158) at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304) at org.jnp.interfaces.NamingContext.getObjectInstance(NamingContext.java:1479) at org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure(NamingContext.java:1496) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:822) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:686) at javax.naming.InitialContext.lookup(InitialContext.java:351) at com.squaretrade.locator.Locator.getSession(Locator.java:193) at com.squaretrade.product2.ProductManager.getManagerSession(ProductManager.java:1011) at com.squaretrade.product2.ProductManager.personHasPurchasableProductsOfType(ProductManager.java:431) at com.squaretrade.data.replication.DataReplicationQualifier.replicatePersonData(DataReplicationQualifier.java:100) at com.squaretrade.data.replication.AsynchDataReplicationProcessor.processPerson(AsynchDataReplicationProcessor.java:127) at com.squaretrade.admin.actions.CascadingDataRefresh.execute(CascadingDataRefresh.java:69) at com.squaretrade.struts.jboss.JBossAbstractAction.execute(JBossAbstractAction.java:71) at com.squaretrade.struts.AbstractActionBase.execute(AbstractActionBase.java:211) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190) at org.jboss.web.tomcat.service.session.ClusteredSessionValve.handleRequest(ClusteredSessionValve.java:135) at org.jboss.web.tomcat.service.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:94) at org.jboss.web.tomcat.service.session.LockingValve.invoke(LockingValve.java:62) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92) at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126) at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:436) at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:384) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:595)
This only seems to happen when accessing it from within the server. When I access it remotely from a JUnit test, it works fine.
This used to work fine in jboss 4.0.5. I have tried this on both the java5 and java6 versions of the jboss 5.1.0 and get the same issue on both