Hi,

My comment inline
On 2010-1-15, at 上午3:16, Chris Hatton wrote:

Hey everyone-

Been fighting with this for a while now, but I'm having problems accessing
my service from SoapUI.  I'm using an open standard WSDL contract and
attempting to build out the service using CXF (2.0.9) and deploying on
Servicemix (3.3.1).

I've tinkered for some time with the different namespaces, service names, etc but haven't found the winning combo yet. Am I correct in understanding that this is a problem mapping my SOAP call to my External service? Or is
this a problem getting from the External to the Internal service?


Here's my SOAP fault:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
  <soap:Body>
     <soap:Fault>
        <faultcode>soap:Server</faultcode>
<faultstring><![CDATA[Could not find route for exchange: InOut[
 id: ID:127.0.1.1-1262db9eaff-20:3
 status: Active
 role: provider
 interface: {
http://www.imsglobal.org/services/gms/wsdl/imsGroupManAbstractSync_v1p0 }GroupManagementServiceSync
 service: {
http://www.imsglobal.org/services/gms/wsdl/ imsGroupManServiceSync_v1p0}GroupManagementServiceSync
 operation: {
http://www.imsglobal.org/services/gms/wsdl/imsGroupManAbstractSync_v1p0 }readGroup
 in: <?xml version="1.0" encoding="UTF-8"?>
<jbi:message xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11- wrapper"
xmlns:msg="
http://www.imsglobal.org/services/gms/wsdl/imsGroupManAbstractSync_v1p0 "
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"; name="readGroupRequest"
type="msg:readGroupRequest" version="1.0">
...
</jbi:message>
...
</faultstring>
     </soap:Fault>
  </soap:Body>
</soap:Envelope>


Some warnings from Servicemix:

WARN  - DefaultBroker                  - ServiceName ({
http://www.imsglobal.org/services/gms/wsdl/ imsGroupManServiceSync_v1p0}GroupManagementServiceSync)
specified for routing, but can't find it registered
WARN  - DefaultBroker                  - InterfaceName ({
http://www.imsglobal.org/services/gms/wsdl/imsGroupManAbstractSync_v1p0 }GroupManagementServiceSync)
specified for routing, but can't find any matching components


Relevant WSDL:


<wsdl:service name = "GroupManagementServiceSync">
       <wsdl:port name = "GroupManagementServiceSyncSoap" binding =
"tns:GroupManagementServiceSyncSoap">
<soap:address location = "http://localhost:8193/GroupService/ "/>

       </wsdl:port>
</wsdl:service>



My xbean.xml:

<beans xmlns="http://www.springframework.org/schema/beans";
      xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0";
      xmlns:xsi="http://http://www.w3.org/2001/XMLSchema-instance";
      xmlns:imsGroup="
http://www.imsglobal.org/services/gms/wsdl/ imsGroupManServiceSync_v1p0"
      xmlns:absg="
http://www.imsglobal.org/services/gms/wsdl/imsGroupManAbstractSync_v1p0 "
      xmlns:exampleNamespace="http://example.com/exampleService";
      xsi:schemaLocation="http://servicemix.apache.org/cxfbc/1.0
http://servicemix.apache.org/schema/servicemix-cxfbc-3.2.3.xsd
      http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd";>

 <cxfbc:consumer
   wsdl="classpath:imsGroupManServiceSync_v1p0.wsdl"
   targetService="imsGroup:GroupManagementServiceSync"
   targetInterface="absg:GroupManagementServiceSync"
   />
</beans>



My SEI:

@WebServiceClient(name = "GroupManagementServiceSync",
                 wsdlLocation = "...",
                 targetNamespace = "
http://www.imsglobal.org/services/gms/wsdl/ imsGroupManServiceSync_v1p0")
public class GroupManagementServiceSync extends Service {
This shouldn't be your SEI, this is client factory from which you can get your client proxy, it's used on client side. Your SEI should be a java interface with @WebService annotation, but not @WebServiceClient annotation, generally the SEI class name should be same as the portType name defined in your wsdl.
I believe this is the root cause of the error you encounter.

Freeman




And my ServiceImpl:

@WebService(
       targetNamespace = "
http://www.imsglobal.org/services/gms/wsdl/ imsGroupManServiceSync_v1p0",
       serviceName = "GroupManagementServiceSync",
       name = "GroupManagementServiceSync")

endpointInterface = "org .imsglobal .services .gms.wsdl.imsgroupmanabstractsync_v1p0.GroupManagementServiceSync"
)
public class ImsGroupImpl implements GroupManagementServiceSync {


   public void readGroup(ReadGroupRequest parameters,
           SyncRequestHeaderInfo headerInfoRequest,
           Holder<ReadGroupResponse> response,
           Holder<SyncResponseHeaderInfo> headerInfoResponse) {

       ...
   }




Any help is greatly appreciated!

Thanks!
-Chris Hatton


--
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com

Reply via email to