The CXF jaxws provider isn't being picked up. It's getting the Sun RI JAX-WS
implementation instead. Make sure you have the CXF jars on the classpath
and not the Sun RI jars. (or at least the CXF jars in front of the sun jars)
Dan
On Thursday 29 January 2009 4:58:22 pm deanhe01 wrote:
> It is probablly user error but...here is the problem. In my client code, I
> am accessing a webservice. In the outbound request I need to insert some
> values in the security header.
>
> Following the apache sample in converting from a JAX-WS to CXF enpoint
> sample:
>
> create your service
> get the port from the service
> call ClientProxy.getClient(port);
> add interceptors
>
> client code is already generated and the client app does work without
> attempting to map to a cxf endpoint. When I attempt to map to a CXf
> endpoint a class cast exception is thrown.
>
>
> QName name = new QName("<my namespace>", "workItemQuery");
> URL url = new
> URL("file:///C:/work/ibpm/ibpm-ws-client/src/main/resources/META-INF/ibpm-w
>s-client/wsdl/workItemQueryService.wsdl"); WorkItemQuery workItemQuery = new
> WorkItemQuery(url,name);
> WorkItemQueryService port =
> workItemQuery.getPort(WorkItemQueryService.class);
> ((BindingProvider)port).getRequestContext()
> .put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,"http://<my
> server>/workItemQueryService");
>
> Client cxfClient = ClientProxy.getClient(port); Throws ClassCastException
> //return workItemQueryService.getWorkItems(workItemFilter).getItem();
> return port.getWorkItems(workItemFilter).getItem();
>
> ERROR HomeAction - Error getting work items
> java.lang.ClassCastException: com.sun.xml.ws.client.sei.SEIStub
> at org.apache.cxf.frontend.ClientProxy.getClient(ClientProxy.java:87)
> at
> com.nintendo.ibpm.ws.sample.action.HomeAction.getWorkItems(HomeAction.java:
>61) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:3
>9) at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp
>l.java:25) at java.lang.reflect.Method.invoke(Method.java:585)
> at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:517)
> at ognl.OgnlRuntime.getMethodValue(OgnlRuntime.java:931)
> at
> ognl.ObjectPropertyAccessor.getPossibleProperty(ObjectPropertyAccessor.java
>:53) at
> ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:121) at
> com.opensymphony.xwork2.util.OgnlValueStack$ObjectAccessor.getProperty(Ognl
>ValueStack.java:58) at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1643)
> at
> com.opensymphony.xwork2.util.CompoundRootAccessor.getProperty(CompoundRootA
>ccessor.java:101) at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1643)
> at ognl.ASTProperty.getValueBody(ASTProperty.java:92)
> at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170)
> at ognl.SimpleNode.getValue(SimpleNode.java:210)
> at ognl.Ognl.getValue(Ognl.java:333)
> at ognl.Ognl.getValue(Ognl.java:310)
> at com.opensymphony.xwork2.util.OgnlUtil.getValue(OgnlUtil.java:190)
> at
> com.opensymphony.xwork2.util.OgnlValueStack.findValue(OgnlValueStack.java:2
>08) at
> org.apache.struts2.dispatcher.StrutsRequestWrapper.getAttribute(StrutsReque
>stWrapper.java:80) at
> org.apache.jasper.runtime.PageContextImpl.doGetAttribute(PageContextImpl.ja
>va:298) at
> org.apache.jasper.runtime.PageContextImpl.getAttribute(PageContextImpl.java
>:284) at org.displaytag.util.LookupUtil.getBeanValue(LookupUtil.java:100) at
> org.displaytag.tags.TemplateTag.evaluateExpression(TemplateTag.java:84) at
> org.displaytag.tags.TableTag.initParameters(TableTag.java:847) at
> org.displaytag.tags.TableTag.doStartTag(TableTag.java:722)
> at
> org.apache.jsp.WEB_002dINF.pages.home_jsp._jspx_meth_display_table_0(org.ap
>ache.jsp.WEB_002dINF.pages.home_jsp:169) at
> org.apache.jsp.WEB_002dINF.pages.home_jsp._jspService(org.apache.jsp.WEB_00
>2dINF.pages.home_jsp:105)
>
>
> My Service class :
>
>
> /**
> * This class was generated by the JAX-WS RI.
> * JAX-WS RI 2.1.5-b03-
> * Generated source version: 2.1
> *
> */
> @WebServiceClient(name = "workItemQuery", targetNamespace = "<my
> namespace>", wsdlLocation = "/services/workItemQueryService?wsdl")
> public class WorkItemQuery
> extends Service
> {
> .....
> }
>
>
> My Enpoint/Port:
>
> /**
> * This class was generated by the JAX-WS RI.
> * JAX-WS RI 2.1.5-b03-
> * Generated source version: 2.1
> *
> */
> @WebService(name = "WorkItemQueryService", targetNamespace =
> "http://ws.ibpm.nintendo.com/")
> @SOAPBinding(style = SOAPBinding.Style.RPC)
> @XmlSeeAlso({
> ObjectFactory.class
> })
> public interface WorkItemQueryService {
>
> /**
> *
> * @param workItemId
> * @return
> * returns com.nintendo.ibpm.ws.client.WorkItemModel
> */
> @WebMethod
> @WebResult(partName = "return")
> public WorkItemModel getForId(
> @WebParam(name = "workItemId", partName = "workItemId")
> long workItemId);
>
> /**
> *
> * @param workItemFilter
> * @return
> * returns com.nintendo.ibpm.ws.client.WorkItemModelArray
> */
> @WebMethod
> @WebResult(partName = "return")
> public WorkItemModelArray getWorkItems(
> @WebParam(name = "workItemFilter", partName = "workItemFilter")
> WorkItemFilterModel workItemFilter);
>
> }
>
> any help is greatly appreciated.
>
> Thanks
>
>
> Dean
--
Daniel Kulp
[email protected]
http://dankulp.com/blog