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 Mike Patton <m_...@yahoo.com> on 2007/07/06 04:44:19 UTC

[Axis2] getInboundFaultFromMessageContext error when accessing the service

Hi,
I am new in the web service world and I am developing a simple web service using Axis2, Eclipse, and the Axis2 Eclipse Plugin. I have a simple Pojo of type Employee with getters and setters, and a service class called EmployeeService that has only one method. The method has the following signature: List<Person> getEmployees(String UserPrivilege, String username, String password). Its implementation connects to a database and retrieves that the necessary data to build and return a java.util.ArrayList of Employee objects.

Using the Eclipse Plugin and following the tutorial on http://wso2.org/library/1719, I generated a web service that exposes the class EmployeeService's getEmployees(String, String, String) method. I also wrote a client class called Main.java to test the service. However, when I run the client, I get the following error:

org.apache.axis2.AxisFault: The service cannot be found for the endpoint
reference (EPR) http://localhost:8080/axis2/services/EmployeeService
    at
org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:434)
    at
org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:373)
    at
org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:294)
    at
com.myCompany.service.EmployeeServiceSOAP11PortStub.getEmployees(EmployeeServiceSOAP11PortStub.java:151)
    at com.myCompany.client.Main.main(Main.java:34)
---------------------------------------------------------------------

Line 34 of Main.java has the following statement:
EmployeeServiceSOAP11PortStub.GetEmployeesResponse getEmployeesResponse = stub.getEmployees(getEmployees);
---------------------------------------------------------------------
The core client code is below.

try{
    stub = new EmployeeServiceSOAP11PortStub("http://localhost:8080/axis2/services/EmployeeService");
    EmployeeServiceSOAP11PortStub.GetEmployees getEmployees = new EmployeeServiceSOAP11PortStub.GetEmployees();

    EmployeeServiceSOAP11PortStub.GetEmployeesResponse getEmployeesResponse = stub.getEmployees(getEmployees);
    OMElement omelement = getEmployeesResponse.get_return();
    System.out.println(omelement.toStringWithConsume());
}catch(AxisFault e){
    e.printStackTrace();
}catch(RemoteException e){
    e.printStackTrace();
}catch(XMLStreamException e){
    e.printStackTrace();
}


Thank you in advance for your comments or suggestions. I am also placing the WSDL file below.

------------------------------------
<wsdl:definitions xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" 
   xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
   xmlns:xsd="http://service.myCompany.com/xsd" xmlns:ns="http://service.myCompany.com" 
   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
   targetNamespace="http://service.myCompany.com">
   
   <wsdl:types>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" 
       elementFormDefault="qualified" targetNamespace="http://service.myCompany.com/xsd">
   
     <xs:element name="getEmployees">
      <xs:complexType>
       <xs:sequence>
        <xs:element name="userPrivilege" nillable="true" type="xs:string" />
        <xs:element name="username" nillable="true" type="xs:string" />
        <xs:element name="password" nillable="true" type="xs:string" />
       </xs:sequence>
      </xs:complexType>
     </xs:element>
  
     <xs:element name="getEmployeesResponse">
      <xs:complexType>
       <xs:sequence>
        <xs:element name="return" nillable="true" type="xs:anyType" />
       </xs:sequence>
      </xs:complexType>
     </xs:element>
  
    </xs:schema>
   </wsdl:types>
   
   <wsdl:message name="getEmployeesMessage">
     <wsdl:part name="part1" element="xsd:getEmployees" />
   </wsdl:message>
   
   <wsdl:message name="getEmployeesResponseMessage">
    <wsdl:part name="part1" element="xsd:getEmployeesResponse" />
   </wsdl:message>
   
   <wsdl:portType name="EmployeeServicePortType">
     <wsdl:operation name="getEmployees">
      <wsdl:input xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" wsaw:Action="urn:getEmployees" 
        message="ns:getEmployeesMessage" />
      <wsdl:output xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" message="ns:getEmployeesResponseMessage" 
      wsaw:Action="urn:getEmployees" />
    </wsdl:operation>
   </wsdl:portType>
   
   <wsdl:binding name="EmployeeServiceSOAP11Binding" type="ns:EmployeeServicePortType">
     <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
     <wsdl:operation name="getEmployees"><soap:operation soapAction="urn:getEmployees" style="document" />
     <wsdl:input><soap:body use="literal" />
     </wsdl:input><wsdl:output><soap:body use="literal" /></wsdl:output></wsdl:operation>
   </wsdl:binding><wsdl:binding name="EmployeeServiceSOAP12Binding" type="ns:EmployeeServicePortType">
   
   <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
   <wsdl:operation name="getEmployees"><soap12:operation soapAction="urn:getEmployees" style="document" />
     <wsdl:input><soap12:body use="literal" /></wsdl:input>
     <wsdl:output><soap12:body use="literal" /></wsdl:output>
   </wsdl:operation>
   </wsdl:binding><wsdl:service name="EmployeeService">
    <wsdl:port name="EmployeeServiceSOAP11port" binding="ns:EmployeeServiceSOAP11Binding">
    <soap:address location="http://localhost:8080/axis2/services/EmployeeService" />
    </wsdl:port><wsdl:port name="EmployeeServiceSOAP12port" binding="ns:EmployeeServiceSOAP12Binding">
    <soap12:address location="http://localhost:8080/axis2/services/EmployeeService" />
    </wsdl:port></wsdl:service>
 </wsdl:definitions>



       
---------------------------------
Shape Yahoo! in your own image.  Join our Network Research Panel today!

RE: [Axis2] getInboundFaultFromMessageContext error when accessing the service

Posted by Jorge Fernandez <in...@yahoo.es>.
Hi,

I got the same problem sometimes, when deploying my service under Axis2 as standalone server while having it running under Tomcat works out.

Does anybody know what's the problem with this??

Regards,

Jorge Fernández



Mike Patton <m_...@yahoo.com> escribió: Hi,
I am new in the web service world and I am developing a simple web service using Axis2, Eclipse, and the Axis2 Eclipse Plugin. I have a simple Pojo of type Employee with getters and setters, and a service class called EmployeeService that has only one method. The method has the following signature: List<Person> getEmployees(String UserPrivilege, String username, String password). Its implementation connects to a database and retrieves that the necessary data to build and return a java.util.ArrayList of Employee objects.

Using the Eclipse Plugin and following the tutorial on http://wso2.org/library/1719, I generated a web service that exposes the class EmployeeService's getEmployees(String, String, String) method. I also wrote a client class called Main.java to test the service. However, when I run the client, I get the following error:

org.apache.axis2.AxisFault: The service cannot be found for the endpoint
reference (EPR)  http://localhost:8080/axis2/services/EmployeeService
    at
org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:434)
    at
org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:373)
    at
org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:294)
    at
com.myCompany.service.EmployeeServiceSOAP11PortStub.getEmployees(EmployeeServiceSOAP11PortStub.java:151)
    at com.myCompany.client.Main.main(Main.java:34)
---------------------------------------------------------------------

Line 34 of Main.java has the following statement:
EmployeeServiceSOAP11PortStub.GetEmployeesResponse getEmployeesResponse = stub.getEmployees(getEmployees);
---------------------------------------------------------------------
The core client code is below.

try{
    stub =  new EmployeeServiceSOAP11PortStub("http://localhost:8080/axis2/services/EmployeeService");
    EmployeeServiceSOAP11PortStub.GetEmployees getEmployees = new EmployeeServiceSOAP11PortStub.GetEmployees();

    EmployeeServiceSOAP11PortStub.GetEmployeesResponse getEmployeesResponse = stub.getEmployees(getEmployees);
    OMElement omelement = getEmployeesResponse.get_return();
    System.out.println(omelement.toStringWithConsume());
}catch(AxisFault e){
    e.printStackTrace();
}catch(RemoteException e){
    e.printStackTrace();
}catch(XMLStreamException e){
    e.printStackTrace();
}


Thank you in advance for your comments or suggestions. I am also placing the WSDL file below.

------------------------------------
<wsdl:definitions xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" 
    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
   xmlns:xsd="http://service.myCompany.com/xsd" xmlns:ns="http://service.myCompany.com" 
   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
   targetNamespace="http://service.myCompany.com">
   
   <wsdl:types>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" 
       elementFormDefault="qualified" targetNamespace="http://service.myCompany.com/xsd">
   
     <xs:element name="getEmployees">
      <xs:complexType>
       <xs:sequence>
        <xs:element name="userPrivilege" nillable="true"  type="xs:string" />
        <xs:element name="username" nillable="true" type="xs:string" />
        <xs:element name="password" nillable="true" type="xs:string" />
       </xs:sequence>
      </xs:complexType>
     </xs:element>
  
     <xs:element name="getEmployeesResponse">
      <xs:complexType>
       <xs:sequence>
        <xs:element name="return" nillable="true" type="xs:anyType" />
       </xs:sequence>
      </xs:complexType>
     </xs:element>
  
    </xs:schema>
    </wsdl:types>
   
   <wsdl:message name="getEmployeesMessage">
     <wsdl:part name="part1" element="xsd:getEmployees" />
   </wsdl:message>
   
   <wsdl:message name="getEmployeesResponseMessage">
    <wsdl:part name="part1" element="xsd:getEmployeesResponse" />
   </wsdl:message>
   
   <wsdl:portType name="EmployeeServicePortType">
     <wsdl:operation name="getEmployees">
      <wsdl:input xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" wsaw:Action="urn:getEmployees" 
        message="ns:getEmployeesMessage" />
      <wsdl:output xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" message="ns:getEmployeesResponseMessage"  
      wsaw:Action="urn:getEmployees" />
    </wsdl:operation>
   </wsdl:portType>
   
   <wsdl:binding name="EmployeeServiceSOAP11Binding" type="ns:EmployeeServicePortType">
     <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
     <wsdl:operation name="getEmployees"><soap:operation soapAction="urn:getEmployees" style="document" />
     <wsdl:input><soap:body use="literal" />
     </wsdl:input><wsdl:output><soap:body use="literal" /></wsdl:output></wsdl:operation>
   </wsdl:binding><wsdl:binding name="EmployeeServiceSOAP12Binding" type="ns:EmployeeServicePortType">
   
   <soap12:binding  transport="http://schemas.xmlsoap.org/soap/http" style="document" />
   <wsdl:operation name="getEmployees"><soap12:operation soapAction="urn:getEmployees" style="document" />
     <wsdl:input><soap12:body use="literal" /></wsdl:input>
     <wsdl:output><soap12:body use="literal" /></wsdl:output>
   </wsdl:operation>
   </wsdl:binding><wsdl:service name="EmployeeService">
    <wsdl:port name="EmployeeServiceSOAP11port" binding="ns:EmployeeServiceSOAP11Binding">
    <soap:address location="http://localhost:8080/axis2/services/EmployeeService" />
    </wsdl:port><wsdl:port name="EmployeeServiceSOAP12port" binding="ns:EmployeeServiceSOAP12Binding">
    <soap12:address  location="http://localhost:8080/axis2/services/EmployeeService" />
    </wsdl:port></wsdl:service>
 </wsdl:definitions>


        

---------------------------------
Shape Yahoo! in your own image.   Join our Network Research Panel today! 

       
---------------------------------

Sé un Mejor Amante del Cine
¿Quieres saber cómo? ¡Deja que otras personas te ayuden!.