I created a webservice using JAX WS in Eclipse and deployed to Weblogic 12c app server.
The @Webservice class and WSDL is shown below. The issue was when i use the WSDL for wsimport i get error due to the WSAM:input/ouput action . I understand that its for WS Addressing but i havent specified any explicit @Addressing in my @SOAPBinding.
Question 1 ) Why is this getting generated in the WSDL. The Altova XML spy is not validating this WSDL.
Question 2 ) Wsimport works perfectly generating the client artifacts with just wsimport <>. I have not even provided the -b binding file containing the Schemas referenced in the WSDL. How is the wsimport able to genrate the client artifcats without the binding file
Thanks...Venkat
package com.arie.account.web.webservice;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.ParameterStyle;
import javax.jws.soap.SOAPBinding.Style;
import javax.jws.soap.SOAPBinding.Use;
import javax.xml.ws.Action;
import javax.xml.ws.soap.Addressing;
@WebService(serviceName = "AccountWebservice" , name = "AccountWebservice" )
@SOAPBinding(style = Style.RPC ,use=Use.LITERAL)
public class Account {
@WebMethod
@Action()
public @WebResult(partName="return") AccountResponse getAccountData(
@WebParam(partName="AccountRequestBean") AccountRequestBean accountRequest){
return new AccountResponse();
}
}
WSDL Here
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Published by JAXWS RI at http://jaxws.dev.java.net. RI's version is JAXWS RI 2.2.6hudson86 svnrevision#12773.
>
<! Generated by JAXWS RI at http://jaxws.dev.java.net. RI's version is JAXWS RI 2.2.6hudson86 svnrevision#12773.
-->
<definitions xmlns:wsu="http://docs.oasisopen.org/wss/2004/01/oasis200401wsswssecurityutility1.0.xsd" xmlns:wsp="http://www.w3.org/ns/wspolicy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://webservice.account.ivr.arie.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://webservice.account.arie.com/" name="AccountWebservice">
<types>
<xsd:schema>
<xsd:import namespace="http://webservice.account.arie.com/" schemaLocation="http://localhost:7001/ATRWebStatistics/AccountWebservice?xsd=1" />
</xsd:schema>
</types>
<message name="getAccountData">
<part name="AccountRequestBean" type="tns:accountRequestBean" />
</message>
<message name="getAccountDataResponse">
<part name="return" type="tns:accountResponse" />
</message>
<portType name="AccountWebservice">
<operation name="getAccountData">
<input wsam:Action="http://webservice.account.arie.com/AccountWebservice/getAccountDataRequest" message="tns:getAccountData" />
<output wsam:Action="http://webservice.account.arie.com/AccountWebservice/getAccountDataResponse" message="tns:getAccountDataResponse" />
</operation>
</portType>
<binding name="AccountWebservicePortBinding" type="tns:AccountWebservice">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc" />
<operation name="getAccountData">
<soap:operation soapAction="" />
<input>
<soap:body use="literal" namespace="http://webservice.account.arie.com/" />
</input>
<output>
<soap:body use="literal" namespace="http://webservice.account.arie.com/" />
</output>
</operation>
</binding>
<service name="AccountWebservice">
<port name="AccountWebservicePort" binding="tns:AccountWebservicePortBinding">
<soap:address location="http://localhost:7001/ATRWebStatistics/AccountWebservice" />
</port>
</service>
</definitions