[ 
https://issues.apache.org/jira/browse/AXIS2-5739?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andreas Veithen resolved AXIS2-5739.
------------------------------------
    Resolution: Invalid

This is the bug tracker for Apache Axis2. Issues related to forks of Axis2 
created by third party vendors should be submitted to those third party vendors.

> calling ServiceClient.fireAndForget and receiving java.lang.NoSuchMethodError 
> getMessageFormatter
> -------------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-5739
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5739
>             Project: Axis2
>          Issue Type: Bug
>          Components: transports
>    Affects Versions: 1.7.0
>         Environment: linux
>            Reporter: erica peters
>            Priority: Critical
>
> We are trying to upgrade to the newest version of wso2as.  However, we are 
> unable to send asynchronous messages based on the following errors received 
> (code source will be at the bottom):
> TID: [-1] [] [2016-02-04 12:31:07,912]  WARN 
> {org.apache.axis2.transport.base.TransportMBeanSupport} -  Error registering 
> a MBean with objectname ' 
> org.apache.axis2:Type=Transport,ConnectorName=jms-sender ' for JMX management 
> {org.apache.axis2.transport.base.TransportMBeanSupport}
> javax.management.InstanceAlreadyExistsException: 
> org.apache.axis2:Type=Transport,ConnectorName=jms-sender
>         at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:437)
>         at 
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerWithRepository(DefaultMBeanServerInterceptor.java:1898)
>         at 
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:966)
>         at 
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:900)
>         at 
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:324)
>         at 
> com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)
>         at 
> org.apache.axis2.transport.base.TransportMBeanSupport.register(TransportMBeanSupport.java:91)
>         at 
> org.apache.axis2.transport.base.AbstractTransportSender.init(AbstractTransportSender.java:84)
>         at org.apache.axis2.transport.jms.JMSSender.init(JMSSender.java:63)
>         at 
> org.apache.axis2.context.ConfigurationContextFactory.initTransportSenders(ConfigurationContextFactory.java:300)
>         at 
> org.apache.axis2.context.ConfigurationContextFactory.init(ConfigurationContextFactory.java:231)
>         at 
> org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:93)
>         at 
> org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContextFromFileSystem(ConfigurationContextFactory.java:210)
>         at 
> com.solers.espds.util.messaging.ServiceClientPoolFactory.create(ServiceClientPoolFactory.java:50)
>         at 
> com.solers.espds.util.messaging.ServiceClientPoolFactory.create(ServiceClientPoolFactory.java:24)
>         at 
> org.apache.commons.pool2.BasePooledObjectFactory.makeObject(BasePooledObjectFactory.java:60)
>         at 
> org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:868)
>         at 
> org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:435)
>         at 
> org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363)
>         at 
> com.solers.espds.util.messaging.ServiceInvoker.deliverSync(ServiceInvoker.java:292)
>         at 
> com.solers.espds.cim.userProfile.comm.UserManagerApi.getUserByLogin(UserManagerApi.java:1467)
>         at 
> com.solers.espds.cim.dataIntake.userManager.PdaUserManager.getUserGroup(PdaUserManager.java:297)
>         at 
> com.solers.espds.cim.dataIntake.userManager.PdaUserManager.hasAccess(PdaUserManager.java:312)
>         at 
> com.solers.espds.cim.dataIntake.userManager.PdaUserManager.authenticate(PdaUserManager.java:92)
>         at 
> com.solers.espds.cim.dataIntake.sftpServer.PdaSftpServer$1.authenticate(PdaSftpServer.java:215)
>         at 
> org.apache.sshd.server.auth.UserAuthPassword.checkPassword(UserAuthPassword.java:55)
>         at 
> org.apache.sshd.server.auth.UserAuthPassword.auth(UserAuthPassword.java:49)
>         at 
> org.apache.sshd.server.session.ServerSession.userAuth(ServerSession.java:406)
>         at 
> org.apache.sshd.server.session.ServerSession.handleMessage(ServerSession.java:215)
>         at 
> org.apache.sshd.common.session.AbstractSession.decode(AbstractSession.java:566)
>         at 
> org.apache.sshd.common.session.AbstractSession.messageReceived(AbstractSession.java:236)
>         at 
> org.apache.sshd.common.AbstractSessionIoHandler.messageReceived(AbstractSessionIoHandler.java:58)
>         at 
> org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:716)
>         at 
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
>         at 
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)
>         at 
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:796)
>         at 
> org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:119)
>         at 
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
>         at 
> org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:426)
>         at 
> org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:697)
>         at 
> org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:651)
>         at 
> org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:640)
>         at 
> org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:67)
>         at 
> org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1111)
>         at 
> org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:745)
> TID: [-1234] [] [2016-02-08 12:21:01,817] ERROR 
> {org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver} -  
> org.apache.axis2.transport.TransportUtils.getMessageFormatter(Lorg/apache/axis2/context/MessageContext;)Lorg/apache/axis2/transport/MessageFormatter;
>  {org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver}
> java.lang.NoSuchMethodError: 
> org.apache.axis2.transport.TransportUtils.getMessageFormatter(Lorg/apache/axis2/context/MessageContext;)Lorg/apache/axis2/transport/MessageFormatter;
>         at 
> org.apache.axis2.transport.jms.JMSSender.createJMSMessage(JMSSender.java:328)
>         at 
> org.apache.axis2.transport.jms.JMSSender.sendOverJMS(JMSSender.java:159)
>         at 
> org.apache.axis2.transport.jms.JMSSender.sendMessage(JMSSender.java:141)
>         at 
> org.apache.axis2.transport.base.AbstractTransportSender.invoke(AbstractTransportSender.java:112)
>         at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)
>         at 
> org.apache.axis2.description.OutOnlyAxisOperationClient.executeImpl(OutOnlyAxisOperation.java:297)
>         at 
> org.apache.axis2.client.OperationClient.execute(OperationClient.java:149)
>         at 
> org.apache.axis2.client.ServiceClient.fireAndForget(ServiceClient.java:511)
>         at 
> com.solers.espds.util.messaging.ServiceInvoker.deliverAsync(ServiceInvoker.java:259)
>         at 
> com.solers.espds.cim.schedule.comm.ScheduleManagerApi.createDataIntakeEvent(ScheduleManagerApi.java:109)
>         at 
> com.solers.espds.cim.dataIntake.FtpClientManager.pullFile(FtpClientManager.java:367)
>         at 
> com.solers.espds.cim.dataIntake.comm.FtpClientManagerListener.pullFile(FtpClientManagerListener.java:42)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:606)
>         at 
> org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212)
>         at 
> org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver.invokeBusinessLogic(RPCInOnlyMessageReceiver.java:66)
>         at 
> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110)
>         at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
>         at 
> org.apache.axis2.transport.base.AbstractTransportListener.handleIncomingMessage(AbstractTransportListener.java:328)
>         at 
> org.apache.axis2.transport.jms.JMSMessageReceiver.processThoughEngine(JMSMessageReceiver.java:196)
>         at 
> org.apache.axis2.transport.jms.JMSMessageReceiver.onMessage(JMSMessageReceiver.java:122)
>         at 
> org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.handleMessage(ServiceTaskManager.java:518)
>         at 
> org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.run(ServiceTaskManager.java:430)
>        at 
> org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:58)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:745)
> Code Source:
>       public void deliverAsync(Message message) {
>               ServiceClient serviceClient = null;
>               try {
>                       String namespace = namespaceMapping.get(this.endpoint);
>                       String endpointName = endpointMapping.get("async" + 
> this.endpoint);
>                       
>                       serviceClient = scp.borrowObject();
>                       // for endpoints not in PDA Properties
>                       if (endpointName == null) {
>                               endpointName = 
> endpointMapping.get(this.endpoint);
>                       }
>                       if (message.get("ZONE") != null) {
>                               String queue = endpointName.substring(0, 
> endpointName.indexOf("?")) + "ProxyCBR";
>                               String transportInfo = 
> endpointName.substring(endpointName.indexOf("?"));
>                               endpointName = queue + transportInfo;
>                       }
>                       if (endpointName.startsWith("jms")) {
>                               if (priorityAsync != null) {
>                                       
> serviceClient.getOptions().setProperty(JMSConstants.JMS_PRIORITY, 
> priorityAsync);
>                               }
>                               if (timeToLiveAsync != null) {
>                                       
> serviceClient.getOptions().setProperty(JMSConstants.JMS_TIME_TO_LIVE, 
> timeToLiveAsync);
>                               }
>                               if (deliveryModeAsync != null) {
>                                       
> serviceClient.getOptions().setProperty(JMSConstants.JMS_DELIVERY_MODE, 
> deliveryModeAsync);
>                               }
>                       }
>                       // Add the operation to it.
>                       AxisOperation operation = new OutOnlyAxisOperation();
>                       operation.setName(new QName(namespace, this.action, 
> prefix));
>                       serviceClient.getAxisService().addOperation(operation);
>                       // Set the endpoint and action.
>                       serviceClient.getOptions().setTo(new 
> EndpointReference(endpointName));
>                       
> serviceClient.getOptions().setProperty(org.apache.axis2.Constants.Configuration.MESSAGE_TYPE,
>  messageType);
>                       // Add the message to the SOAP message.
>                       OMFactory omFactory = OMAbstractFactory.getOMFactory();
>                       OMElement actionElement = 
> omFactory.createOMElement(this.action, null);
>                       // Grab the root element
>                       actionElement.addChild(message.wso2());
>                       actionElement.setNamespace(new 
> OMNamespaceImpl(namespace, prefix));
>                       LoggingAndReport.debug(ServiceInvoker.class.getName(), 
> "deliverAsync", "endpointName: " + endpointName);
>                       LoggingAndReport.debug(ServiceInvoker.class.getName(), 
> "deliverAsync", "action: " + this.action);
>                       // Send the message.
>                       serviceClient.fireAndForget(new QName(namespace, 
> this.action, prefix), actionElement);
>                       Thread.sleep(1000);
>                       omFactory = null;
>                       actionElement = null;
>                       operation = null;
>               } catch (Exception ex) {
>                       LoggingAndReport.error(ServiceInvoker.class.getName(), 
> "deliverAsync", GeneralUtils.getStackTrace(ex));
>               }
>               finally{
>                       //Cleanup Connection if necessary
>                       try {
>                               serviceClient.cleanupTransport();
>                               scp.returnObject(serviceClient);
>                       } catch (AxisFault e) {
>                               e.printStackTrace();
>                       }
>               }
> }
> The error in the logs is a java.lang.NoSuchMethodError.  The TransportUtils, 
> MessageContext and MessageFormatter class files all exist in both the wso2v6 
> and wso2v14 version of the axis2 jar.  
> Since the error is referencing TransportUtils, I went ahead and reverse 
> engineered both versions of that class file.  The getMessageFormatter method 
> does NOT exist in the wso2v14 version of the TransportUtils class.  That 
> being said, I do see where it exists now (BaseUtils) but it's the code from 
> within axis2 that is failing.  I cannot make the change.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to