On Tuesday, September 06, 2011 1:49:44 PM Casey wrote:
> To anyone:
>
> I'm trying to create a web service inside Eclipse Indigo using CXF 2.x and
> when I test it with a client, I receive the following error dump inside
What version of CXF?
Also, what libraries/jars from CXF are present in your project?
This is a WS-Security related policy so you would need cxf-rt-ws-security,
cxf-rt-ws-addr, and cxf-rt-ws-policy to enable all the WS-SecurityPolicy
related stuff.
Dan
> Eclipse:
>
> Sep 6, 2011 9:20:18 AM org.apache.catalina.core.AprLifecycleListener init
> INFO: The APR based Apache Tomcat Native library which allows optimal
> performance in production environments was not found on the
> java.library.path: C:\Program Files\Java\jre6\bin;
> C:\WINDOWS\Sun\Java\bin;
> C:\WINDOWS\system32;
> C:\WINDOWS;
> C:/Program Files/Java/jre6/bin/client;
> C:/Program Files/Java/jre6/bin;
> C:/Program Files/Java/jre6/lib/i386;
> C:\WINDOWS\system32;
> C:\WINDOWS;
> C:\WINDOWS\System32\Wbem;
> C:\WINDOWS\system32\nls;
> C:\WINDOWS\system32\nls\english;
> C:\Program Files\Apache Software Foundation\Slik Subversion 1.6\bin\;
> C:\Program Files\TortoiseSVN\bin;
> C:\Program Files\Apache Software Foundation\Ant 1.8/bin;
> C:\Program Files\Apache Software Foundation\Eclipse Indigo;;.
>
> WARNING: No assertion builder for type
> {http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1
> .0. xsd}
> SecurityToken registered.
> Sep 6, 2011 9:20:53 AM org.apache.cxf.phase.PhaseInterceptorChain
> doDefaultLogging
>
> WARNING: Interceptor for
> {http://soap.edusystems.com/member/MemberCheck.2}MemberCheck has thrown
> exception, unwinding now
> org.apache.cxf.interceptor.Fault: None of the policy alternatives can be
> satisfied. at
> org.apache.cxf.ws.policy.AbstractPolicyInterceptor.handleMessage(
> AbstractPolicyInterceptor.java:47)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain
> . java:263)
> at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(
> ChainInitiationObserver.java:121)
> at
> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(
> AbstractHTTPDestination.java:206)
> at
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(
> ServletController.java:218)
> at
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.
> java:200)
> at
> ...
> org.apache.cxf.ws.policy.EndpointPolicyImpl.getInterceptors(EndpointPolicyIm
> pl. java:126)
> at
> org.apache.cxf.ws.policy.PolicyInInterceptor.handle(PolicyInInterceptor.
> java:136) at
> org.apache.cxf.ws.policy.AbstractPolicyInterceptor.handleMessage(
> AbstractPolicyInterceptor.java:45)
> ...
> 22 more
> Sep 6, 2011 9:20:53 AM org.apache.cxf.interceptor.AbstractLoggingInterceptor
> log
> INFO: Outbound Message
> ---------------------------
> ID: 1
> Response-Code: 500
> Encoding: UTF-8
> Content-Type: text/xml
> Headers: {}
> Payload: <soap:Envelope
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body>
> <soap:Fault><faultcode>soap:Server</faultcode><faultstring>None
> of the policy alternatives can be
> satisfied.</faultstring></soap:Fault></soap:Body></soap:Envelope>
> --------------------------------------
>
>
> The web service WSDL we're using in all this is the following:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions name="MemberCheck.2"
> targetNamespace="http://soap.edusystems.com/member/MemberCheck.2"
> xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:tns="http://soap.edusystems.com/member/MemberCheck.2"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
> <wsdl:types>
> <xsd:schema
> targetNamespace="http://soap.edusystems.com/member/MemberCheck.2"
> version="1.0">
> <xsd:element name="checkMemberRequest" type="tns:checkMemberRequest"/>
> <xsd:element name="checkMemberResponse" type="tns:checkMemberResponse"/>
> <xsd:complexType name="checkMemberRequest">
> <xsd:sequence>
> <xsd:choice>
> <xsd:element name="memberId" type="xsd:string"/>
> <xsd:element name="memberMatch" type="tns:memberMatch"/>
> </xsd:choice>
> </xsd:sequence>
> </xsd:complexType>
> <xsd:complexType name="memberMatch">
> <xsd:sequence>
> <xsd:element minOccurs="0" name="dateOfBirth" type="xsd:date"/>
> <xsd:element minOccurs="0" name="degree" type="xsd:string"/>
> <xsd:element minOccurs="0" name="yearGraduated"
> type="xsd:string"/> <xsd:element minOccurs="0" name="firstYearAttended"
> type="xsd:string"/>
> <xsd:element minOccurs="0" name="lastYearAttended"
> type="xsd:string"/>
> <xsd:element minOccurs="0" name="ssnLast4" type="xsd:string"/>
> <xsd:element minOccurs="0" name="previousSchool"
> type="xsd:string"/>
> <xsd:element minOccurs="0" name="memberId" type="xsd:string"/>
> <xsd:element minOccurs="0" name="firstName" type="xsd:string"/>
> <xsd:element minOccurs="0" name="lastName" type="xsd:string"/>
> <xsd:element minOccurs="0" name="middleName" type="xsd:string"/>
> <xsd:element maxOccurs="unbounded" minOccurs="0" name="custom"
> type="tns:customData"/>
> </xsd:sequence>
> </xsd:complexType>
> <xsd:complexType name="customData">
> <xsd:sequence>
> <xsd:element name="name" type="xsd:string"/>
> <xsd:element name="value" type="xsd:string"/>
> </xsd:sequence>
> </xsd:complexType>
> <xsd:complexType name="checkMemberResponse">
> <xsd:sequence>
> <xsd:element minOccurs="0" name="memberId" type="xsd:string"/>
> <xsd:element name="memberStatus" type="tns:memberStatus"/>
> <xsd:element name="memberStatusMessage" type="xsd:string"/>
> <xsd:element minOccurs="0" name="ude"
> type="tns:userDefinedExtension"/>
> </xsd:sequence>
> </xsd:complexType>
> <xsd:simpleType name="memberStatus">
> <xsd:restriction base="xsd:string">
> <xsd:enumeration value="NOMATCH"/>
> <xsd:enumeration value="HOLD"/>
> <xsd:enumeration value="OK"/>
> </xsd:restriction>
> </xsd:simpleType>
> <xsd:complexType name="userDefinedExtension">
> <xsd:sequence>
> <xsd:any namespace="##other" processContents="lax"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:schema>
> </wsdl:types>
> <wsdl:message name="checkMemberRequest">
> <wsdl:part name="parameters" element="tns:checkMemberRequest">
> </wsdl:part>
> </wsdl:message>
> <wsdl:message name="checkMemberResponse">
> <wsdl:part name="parameters" element="tns:checkMemberResponse">
> </wsdl:part>
> </wsdl:message>
> <wsdl:portType name="MemberCheck">
> <wsdl:operation name="checkMember">
> <wsdl:input message="tns:checkMemberRequest">
> </wsdl:input>
> <wsdl:output message="tns:checkMemberResponse">
> </wsdl:output>
> </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="MemberCheckPortBinding" type="tns:MemberCheck">
> <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
> <wsdl:operation name="checkMember">
> <soap:operation soapAction="" style="document"/>
> <wsdl:input>
> <soap:body use="literal"
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
> </wsdl:input>
> <wsdl:output>
> <soap:body use="literal"
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
> </wsdl:output>
> </wsdl:operation>
> </wsdl:binding>
> <wsdl:service name="MemberCheck">
> <wsdl:port name="MemberCheckPort" binding="tns:MemberCheckPortBinding">
> <soap:address
> location="http://localhost:8888/MemberCheck/services/MemberCheckPort"/>
> </wsdl:port>
> </wsdl:service>
> <wsp:UsagePolicy wsdl:Required="true"/>
> </wsdl:definitions>
>
> Inside my beans.xml file, I have the following:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns="http://www.springframework.org/schema/beans"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:jaxws="http://cxf.apache.org/jaxws"
> xsi:schemaLocation="http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
> http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
> <import resource="classpath:META-INF/cxf/cxf.xml" />
> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
> <import
> resource="classpath:META-INF/cxf/cxf-extension-ws-security.xml" />
> <import resource="classpath:META-INF/cxf/cxf-extension-addr.xml" />
> <jaxws:endpoint
> xmlns:tns="http://soap.edusystems.com/member/MemberCheck.2"
> id="membercheck"
> implementor="com.edusystems.soap.member.membercheck.MemberCheckImpl"
> wsdlLocation="wsdl/MemberCheck.wsdl"
> endpointName="tns:MemberCheckPort"
> serviceName="tns:MemberCheck" address="/MemberCheckPort">
> <jaxws:features>
> <bean class="org.apache.cxf.feature.LoggingFeature" />
> </jaxws:features>
> </jaxws:endpoint>
> </beans>
>
>
> I've tried removing every import in the beans.xml file except the "cxf.xml"
> line to no avail and I've also tried setting all assertions inside the WSDL
> requiring usage to "optional" to no avail as well.
>
> Could someone throw some light on this for me? I'm really at a loss here...
--
Daniel Kulp
[email protected]
http://dankulp.com/blog
Talend - http://www.talend.com