我正在学习JAVA WEB SERVICE,尤其是SOAP。根据{{3}},我们可以自定义WSDL,就像我们可以使用WebService
注释覆盖deafult帖子名称和服务名称一样。所以我尝试了以下内容:
包裹练习;
import java.util.List;
import javax.jws.WebMethod; import javax.jws.WebService;
import practice.business.WebTestImpl; @WebService(名称=" getBooksName",PORTNAME =" getBooksPortName",服务名=" getBooksService&#34)
公共类WebCaller
{WebTestImpl wimpl = new WebTestImpl();
@WebMethod
public List getBooks(String category)
{返回 wimpl.getBooks(类);
} }
但是仍然没有更改默认服务名称和端口名称。这可能是什么原因?生成的WSDL如下:
<definitions targetNamespace="http://practice/" name="WebCallerService"><types><xsd:schema><xsd:import namespace="http://practice/" schemaLocation="http://adminib-v7gnsh2:8075/WebTest/WebCallerService?xsd=1"/></xsd:schema></types><message name="getBooks"><part name="parameters" element="tns:getBooks"/></message><message name="getBooksResponse"><part name="parameters" element="tns:getBooksResponse"/></message><portType name="WebCaller"><operation name="getBooks"><input wsam:Action="http://practice/WebCaller/getBooksRequest" message="tns:getBooks"/><output wsam:Action="http://practice/WebCaller/getBooksResponse" message="tns:getBooksResponse"/></operation></portType><binding name="WebCallerPortBinding" type="tns:WebCaller"><soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/><operation name="getBooks"><soap:operation soapAction=""/><input><soap:body use="literal"/></input><output><soap:body use="literal"/></output></operation></binding><service name="WebCallerService"><port name="WebCallerPort" binding="tns:WebCallerPortBinding"><soap:address location="http://adminib-v7gnsh2:8075/WebTest/WebCallerService"/></port></service></definitions>
我正在使用Eclipse IDE和Glassfish服务器。
答案 0 :(得分:1)
如果您还有描述符文件(例如webservices.xml),则代码中端口的设置将被描述符文件中的设置覆盖。 配置Web服务的一个示例是OSCM服务目录中的解决方案。 见https://github.com/servicecatalog/development/tree/master/oscm-webservices
有关开源项目的更多信息OSCM Cloud Service Management Software