Hi, Try add enable -exsh flag when you generate the code ------------- Freeman(Yue) Fang
Red Hat, Inc. FuseSource is now part of Red Hat Web: http://fusesource.com | http://www.redhat.com/ Twitter: freemanfang Blog: http://freemanfang.blogspot.com http://blog.sina.com.cn/u/1473905042 weibo: @Freeman小屋 On 2013-6-21, at 下午10:02, Brett Heroux wrote: > I'm new to Apache CXF and web services in general, but this situation > doesn't work yet and, to me, it looks like it should > > > My WSDL produces methods such as this: > > > > @WebResult(name = "purchaseResponse", targetNamespace = "") > > @RequestWrapper(localName = "purchase", targetNamespace = > "http://PartnerTransactionServiceGateway/wsdl", className = > "partnertransactionservicegateway.wsdl.Purchase") > > @WebMethod > > @ResponseWrapper(localName = "purchaseResponse", targetNamespace = > "http:// PartnerTransactionServiceGateway/wsdl", className = " > partnertransactionservicegateway.wsdl.PurchaseResponse") > > public partnertransactionservicegateway.wsdl.PurchaseResponseType > purchase( > > @WebParam(name = "purchaseRequest", targetNamespace = "") > > partnertransactionservicegateway.wsdl.PurchasedRequestType > purchaseRequest, > > @WebParam(name = "header", targetNamespace = " > http://PartnerTransactionServiceGateway/wsdl", header = true) > > Header requestHeader > > ) throws PurchaseFaultMsg; > > > > But the runtime does not pass the requestHeader parameter and the call > fails. > > > > I am converting this Web Service from WebSphere web services to jBoss 6 EAP > and Apache CXF 2.7.5 (for wsdl2java) > > > > These are the details of the WSDL > > > > <wsdl:message name="purchaseHeaderMsg"> > > <wsdl:part name="request_header" element="tns:header > "/> > > </wsdl:message> > > <wsdl:message name="purchaseRequestMsg"> > > <wsdl:part name="purchaseParameters" element=" > tns:purchase"/> > > </wsdl:message> > > <wsdl:message name="purchaseResponseMsg"> > > <wsdl:part name="purchaseResult" element=" > tns:purchaseResponse"/> > > </wsdl:message> > > <wsdl:message name="purchase_faultMsg"> > > <wsdl:part name="fault" element=" > tns:FaultType_element"/> > > </wsdl:message> > > > > portType > > <wsdl:operation name="purchase"> > > <wsdl:input name="purchaseRequest" message="bons1:purchaseRequestMsg"/> > > <wsdl:output name="purchaseResponse" message="bons1:purchaseResponseMsg"/> > > <wsdl:fault name="fault" message="bons1:purchase_faultMsg"/> > > </wsdl:operation> > > bindings > <wsdl:operation name="purchase"> > <soap:operation soapAction="urn#purchase"/> > <wsdl:input name="purchaseRequest"> > <soap:header message="Port_0:purchaseHeaderMsg" part="request_header" > use="literal"/> > <soap:body parts="purchaseParameters" use="literal"/> > </wsdl:input> > <wsdl:output name="purchaseResponse"> > <soap:body use="literal"/> > </wsdl:output> > <wsdl:fault name="fault"> > <soap:fault name="fault" use="literal"/> > </wsdl:fault> > </wsdl:operation> > > Finally, I use maven to generate my java code > > <plugin> > <groupId>org.apache.cxf</groupId> > <artifactId>cxf-codegen-plugin</artifactId> > <version>${cxf.version}</version> > <executions> > <execution> > <configuration> > <fork>once</fork> > <sourceRoot> > ${basedir}/target/generated-sources > </sourceRoot> > <defaultOptions> > <frontEnd>jaxws21</frontEnd> > </defaultOptions> > <wsdlOptions> > <wsdlOption> > <wsdl> > > ${basedir}/src/main/resources/PartnerTransactionServices.wsdl > </wsdl> > > <extendedSoapHeaders>true</extendedSoapHeaders> > </wsdlOption> > </wsdlOptions> > </configuration> > <goals> > <goal>wsdl2java</goal> > </goals> > </execution> > </executions> > <dependencies> > <dependency> > <groupId>com.sun.xml.bind</groupId> > <artifactId>jaxb-impl</artifactId> > <version>2.2</version> > </dependency> > <dependency> > <groupId>com.sun.xml.bind</groupId> > <artifactId>jaxb-xjc</artifactId> > <version>2.2</version> > </dependency> > <dependency> > <groupId>org.apache.cxf</groupId> > > <artifactId>cxf-rt-bindings-soap</artifactId> > <version>2.7.5</version> > </dependency> > </dependencies> > </plugin> > > Brett Heroux
