[jboss-user] [EJB 3.0] - Variable argument list in session bean method causes NoSuchM
ablevine1
do-not-reply at jboss.com
Mon Jun 1 21:12:58 EDT 2009
I 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
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4234588#4234588
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4234588
More information about the jboss-user
mailing list