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