我们正在部署一个带有在axis2.ear内的注释(@ webservice,@ webmethod,@ webresult等)的Web服务。问题在于,生成的wsdl不能反映在这些注释中传递的名称,并且进一步的分析表明,我们的Websphere应用程序服务器(版本9.0.0.10)没有扫描任何注释。
我们的web.xml版本是2.5。
我已经尝试向MANIFEST.MF中添加各种值,例如UseWSFEP61ScanPolicy:true,元数据完整:false。
请在下面找到我的网络服务代码:
import java.io.StringReader;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
@Stateless
@WebService(serviceName = "WASync", portName = "WASyncSoap", targetNamespace = "http://www.is.com/")
public class WASync
{
@WebMethod(action = "http://www.is.com/ISWSLogin", operationName = "ISWSLogin")
@WebResult(header = true, name = "ISWSLoginResult", targetNamespace = "http://www.is.com/")
public java.lang.String ISWSLogin(@WebParam(name = "username") java.lang.String username, @WebParam(name = "password") java.lang.String password)
{
<--my code-->
return xmlResp.getXml();
}
}
下面是我通过SOAP UI获得的结果,但是我期望下面的return标签应该重命名为webservice中@webresult标签中给定的name属性。
<ns:ISWSLoginResponse xmlns:ns="http://www.is.com.wwwwwww/">
<ns:return><![CDATA[<Session Action="Login" SessionKey="">
<RetStatus>0</RetStatus>
<ErrorString/>
<ISResponse>
<SessionKey>87964643-55ab43406b9</SessionKey>
</ISResponse>
</Session>]]></ns:return>