You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Chris Iken <ai...@gmx.de> on 2006/11/03 21:19:42 UTC
java.lang.AbstractMethodError: TCP example (again)
Hi,
I receive the following AbstractMethodError when calling the TCP example of
Axis2 1.1 on client side. What's wrong?
(TCPClient.java and axis2.xml are also listed)
Thanks,
Chris
03.11.2006 20:42:46 org.apache.axis2.deployment.DeploymentEngine
prepareRepository
INFO: no services directory found under C:\Dokumente und
Einstellungen\Christian\client-repository
03.11.2006 20:42:46 org.apache.axis2.deployment.DeploymentEngine doDeploy
INFO: Deploying module : addressing-1.0
03.11.2006 20:42:46 org.apache.axis2.deployment.DeploymentEngine doDeploy
INFO: Deploying module : soapmonitor-1.0
Exception in thread "main" java.lang.AbstractMethodError:
org.apache.axis2.handlers.addressing.AddressingOutHandler.invoke(Lorg/apache
/axis2/context/MessageContext;)Lorg/apache/axis2/engine/Handler$InvocationRe
sponse;
at org.apache.axis2.engine.Phase.invoke(Phase.java:381)
at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:521)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:656)
at
org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperatio
n.java:365)
at
org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOpera
tion.java:295)
at
org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:573)
at
org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:502)
at de.iken.axis2.tcp.TCPClient.main(TCPClient.java:68)
public class TCPClient {
private static String toEpr =
"tcp://localhost:8080/axis2/services/MyService";
public static void main(String[] args) throws AxisFault,
FileNotFoundException {
String home = System.getProperty("user.home");
File repository = new File(home + File.separator +
"client-repository");
if (!repository.exists()) {
throw new FileNotFoundException("Repository Doesnot Exist");
}
ConfigurationContext configContext = ConfigurationContextFactory.
createConfigurationContextFromFileSystem(repository.getAbsolutePath(),
null);
Options options = new Options();
options.setTo(new EndpointReference(toEpr));
options.setTransportInProtocol(Constants.TRANSPORT_TCP);
ServiceClient sender = new ServiceClient(configContext, null);
sender.engageModule(new QName(Constants.MODULE_ADDRESSING));
sender.setOptions(options);
OMElement result = sender.sendReceive(getPayload());
try {
XMLStreamWriter writer = XMLOutputFactory.newInstance()
.createXMLStreamWriter(System.out);
result.serialize(writer);
writer.flush();
} catch (XMLStreamException e) {
e.printStackTrace();
} catch (FactoryConfigurationError e) {
e.printStackTrace();
}
}
private static OMElement getPayload() {
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs = fac.createOMNamespace(
"tcp://localhost:8080/axis2/services/MyService",
"example1");
OMElement method = fac.createOMElement("echo", omNs);
OMElement value = fac.createOMElement("Text", omNs);
value.addChild(fac.createOMText(value, "Axis2 Echo String "));
method.addChild(value);
return method;
}
}
<axisconfig name="AxisJava2.0">
<!-- ================================================= -->
<!-- Parameters -->
<!-- ================================================= -->
<parameter name="hotdeployment" locked="false">true</parameter>
<parameter name="hotupdate" locked="false">false</parameter>
<parameter name="enableMTOM" locked="false">false</parameter>
<!--During a fault, stacktrace can be sent with the fault message. The
following flag will control -->
<!--that behaviour.-->
<parameter name="sendStacktraceDetailsWithFaults"
locked="false">true</parameter>
<!--If there aren't any information available to find out the fault
reason, we set the message of the expcetion-->
<!--as the faultreason/Reason. But when a fault is thrown from a service
or some where, it will be -->
<!--wrapped by different levels. Due to this the initial exception
message can be lost. If this flag-->
<!--is set then, Axis2 tries to get the first exception and set its
message as the faultreason/Reason.-->
<parameter name="DrillDownToRootCauseForFaultReason"
locked="false">false</parameter>
<parameter name="userName" locked="false">admin</parameter>
<parameter name="password" locked="false">axis2</parameter>
<!-- If you have a frontend host which exposes this webservice using a
different public URL -->
<!-- use this parameter to override autodetected url -->
<!--<parameter name="httpFrontendHostUrl"
locked="false">https://someotherhost/context</parameter>-->
<!-- The way of adding listener to the system-->
<!-- <listener class="org.apache.axis2.ObserverIMPL">-->
<!-- <parameter name="RSS_URL"
locked="false">http://127.0.0.1/rss</parameter>-->
<!-- </listener>-->
<!-- ================================================= -->
<!-- Message Receivers -->
<!-- ================================================= -->
<!--This is the Deafult Message Receiver for the system , if you want to
have MessageReceivers for -->
<!--all the other MEP implement it and add the correct entry to here ,
so that you can refer from-->
<!--any operation -->
<!--Note : You can ovride this for particular service by adding the same
element with your requirement-->
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
</messageReceivers>
<!-- ================================================= -->
<!-- Transport Ins -->
<!-- ================================================= -->
<transportReceiver name="http"
class="org.apache.axis2.transport.http.SimpleHTTPServer">
<parameter name="port" locked="false">6060</parameter>
<!--If you want to give your own host address for EPR generation-->
<!--uncommet following paramter , and set as you required.-->
<!--<parameter name="hostname"
locked="false">http://myApp.com/ws</parameter>-->
</transportReceiver>
<!--Uncomment if you want to have SMTP transport support-->
<!--<transportReceiver name="mail"
class="org.apache.axis2.transport.mail.SimpleMailListener">-->
<!--<parameter name="transport.mail.pop3.host"
locked="false">127.0.0.1</parameter>-->
<!--<parameter name="transport.mail.pop3.user"
locked="false">axis2</parameter>-->
<!--<parameter name="transport.mail.pop3.password"
locked="false">axis2</parameter>-->
<!--<parameter name="transport.mail.pop3.port"
locked="false">110</parameter>-->
<!--<parameter name="transport.mail.replyToAddress"
locked="false">axis2@127.0.0.1</parameter>-->
<!--</transportReceiver>-->
<transportReceiver name="tcp"
class="org.apache.axis2.transport.tcp.TCPServer">
<parameter name="port" locked="false">6060</parameter>
<!--If you want to give your own host address for EPR generation-->
<!--uncommet following paramter , and set as you required.-->
<!--<parameter name="hostname"
locked="false">tcp://myApp.com/ws</parameter>-->
</transportReceiver>
<!--Uncomment this if you want JMS transport support-->
<!--<transportReceiver name="jms"
class="org.apache.axis2.transport.jms.SimpleJMSListener">-->
<!--<parameter name="transport.jms.Destination"
locked="false">dynamicQueues/FOO</parameter>-->
<!--<parameter name="java.naming.factory.initial" locked="false">-->
<!--org.activemq.jndi.ActiveMQInitialContextFactory</parameter>-->
<!--<parameter name="java.naming.provider.url"
locked="false">tcp://localhost:61616</parameter>-->
<!--</transportReceiver>-->
<!-- ================================================= -->
<!-- Transport Outs -->
<!-- ================================================= -->
<transportSender name="tcp"
class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
<transportSender name="local"
class="org.apache.axis2.transport.local.LocalTransportSender"/>
<transportSender name="jms"
class="org.apache.axis2.transport.jms.JMSSender"/>
<transportSender name="http"
class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
<parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
<parameter name="Transfer-Encoding"
locked="false">chunked</parameter>
</transportSender>
<transportSender name="https"
class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
<parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
<parameter name="Transfer-Encoding"
locked="false">chunked</parameter>
</transportSender>
<!-- Uncomment this one with the appropriate papameters to enable the
SMTP transport Receiver
<transportSender name="mailto"
class="org.apache.axis2.transport.mail.MailTransportSender">
<parameter name="transport.mail.smtp.host"
locked="false">127.0.0.1</parameter>
<parameter name="transport.mail.smtp.user"
locked="false">axis2</parameter>
<parameter name="transport.mail.smtp.password"
locked="false">axis2</parameter>
<parameter name="transport.mail.smtp.port"
locked="false">25</parameter>
</transportSender>
-->
<!-- ================================================= -->
<!-- Global Modules -->
<!-- ================================================= -->
<!-- Comment this to disable Addressing -->
<module ref="addressing"/>
<!--Configuring module , providing parameters for modules whether they
refer or not-->
<!--<moduleConfig name="addressing">-->
<!--<parameter name="addressingPara" locked="false">N/A</parameter>-->
<!--</moduleConfig>-->
<!-- ================================================= -->
<!-- Phases -->
<!-- ================================================= -->
<phaseOrder type="inflow">
<!-- System pre defined phases -->
<phase name="Transport">
<handler name="RequestURIBasedDispatcher"
class="org.apache.axis2.engine.RequestURIBasedDispatcher">
<order phase="Dispatch"/>
</handler>
<handler name="SOAPActionBasedDispatcher"
class="org.apache.axis2.engine.SOAPActionBasedDispatcher">
<order phase="Dispatch"/>
</handler>
</phase>
<phase name="Security"/>
<phase name="PreDispatch"/>
<phase name="Dispatch"
class="org.apache.axis2.engine.DispatchPhase">
<handler name="AddressingBasedDispatcher"
class="org.apache.axis2.engine.AddressingBasedDispatcher">
<order phase="Dispatch"/>
</handler>
<handler name="SOAPMessageBodyBasedDispatcher"
class="org.apache.axis2.engine.SOAPMessageBodyBasedDispatcher">
<order phase="Dispatch"/>
</handler>
<handler name="InstanceDispatcher"
class="org.apache.axis2.engine.InstanceDispatcher">
<order phase="PostDispatch"/>
</handler>
</phase>
<!-- System pre defined phases -->
<!-- After Postdispatch phase module author or or service author
can add any phase he want -->
<phase name="OperationInPhase"/>
</phaseOrder>
<phaseOrder type="outflow">
<!-- user can add his own phases to this area -->
<phase name="OperationOutPhase"/>
<!--system predefined phase-->
<!--these phase will run irrespective of the service-->
<phase name="PolicyDetermination"/>
<phase name="MessageOut"/>
</phaseOrder>
<phaseOrder type="INfaultflow">
<phase name="PreDispatch"/>
<phase name="Dispatch"
class="org.apache.axis2.engine.DispatchPhase">
<handler name="RequestURIBasedDispatcher"
class="org.apache.axis2.engine.RequestURIBasedDispatcher">
<order phase="Dispatch"/>
</handler>
<handler name="SOAPActionBasedDispatcher"
class="org.apache.axis2.engine.SOAPActionBasedDispatcher">
<order phase="Dispatch"/>
</handler>
<handler name="AddressingBasedDispatcher"
class="org.apache.axis2.engine.AddressingBasedDispatcher">
<order phase="Dispatch"/>
</handler>
<handler name="SOAPMessageBodyBasedDispatcher"
class="org.apache.axis2.engine.SOAPMessageBodyBasedDispatcher">
<order phase="Dispatch"/>
</handler>
<handler name="InstanceDispatcher"
class="org.apache.axis2.engine.InstanceDispatcher">
<order phase="PostDispatch"/>
</handler>
</phase>
<!-- user can add his own phases to this area -->
<phase name="OperationInFaultPhase"/>
</phaseOrder>
<phaseOrder type="Outfaultflow">
<!-- user can add his own phases to this area -->
<phase name="OperationOutFaultPhase"/>
<phase name="PolicyDetermination"/>
<phase name="MessageOut"/>
</phaseOrder>
</axisconfig>
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org