我创建了webservice,如下所示:
@WebService
public class DefaultHolidayCalculatorWS {
@Inject
private HolidayCalculator holidayCalculator;
public Long getDaysTillHoliday() {
return holidayCalculator.getDaysToHoliday();
}}
我把它作为对野蝇的战争。服务已成功创建。然后我创建了我的第二个应用程序(也是.war),其中包含:
@WebService
public interface HolidayCalculatorWS {
Long getDaysTillHoliday();
}
和servlet:
@WebServlet("/soaptest")
public class SOAPTest extends HttpServlet {
@WebServiceRef(wsdlLocation = "http://localhost:8082/HolidayCalcWS/DefaultHolidayCalculatorWS?wsdl" )
private HolidayCalculatorWS holidayCalculatorWS;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(holidayCalculatorWS.getDaysTillHoliday());
}
}
在同一个wildfly服务器上将其部署为单独的.war。当我调用http get .../soaptest
时,我收到了错误消息:'
引起:javax.xml.ws.WebServiceException:找不到服务 在wsdl中命名为null http://localhost:8082/HolidayCalcWS/DefaultHolidayCalculatorWS?wsdl 在 org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:173) 在org.apache.cxf.jaxws.ServiceImpl.initialize(ServiceImpl.java:161) 在org.apache.cxf.jaxws.ServiceImpl。(ServiceImpl.java:129)at at org.jboss.wsf.stack.cxf.client.ProviderImpl $ JBossWSServiceImpl。(ProviderImpl.java:572) 在 org.jboss.wsf.stack.cxf.client.ProviderImpl.createServiceDelegate(ProviderImpl.java:290) 在javax.xml.ws.Service。(Service.java:63)at javax.xml.ws.Service.create(Service.java:710)at org.jboss.wsf.stack.cxf.client.serviceref.CXFServiceObjectFactoryJAXWS.instantiateService(CXFServiceObjectFactoryJAXWS.java:256) 在 org.jboss.wsf.stack.cxf.client.serviceref.CXFServiceObjectFactoryJAXWS.getObjectInstance(CXFServiceObjectFactoryJAXWS.java:86) ......还有68个
这个问题的原因是什么?
编辑:
WSDL:
<?xml version="1.0"?>
<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://ws.app/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" name="DefaultHolidayCalculatorWSService" targetNamespace="http://ws.app/">
<wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://ws.app/" elementFormDefault="unqualified" targetNamespace="http://ws.app/" version="1.0">
<xs:element name="getDaysTillHoliday" type="tns:getDaysTillHoliday"/>
<xs:element name="getDaysTillHolidayResponse" type="tns:getDaysTillHolidayResponse"/>
<xs:complexType name="getDaysTillHoliday">
<xs:sequence/>
</xs:complexType>
<xs:complexType name="getDaysTillHolidayResponse">
<xs:sequence>
<xs:element minOccurs="0" name="daysTillHoliday" type="xs:long"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
</wsdl:types>
<wsdl:message name="getDaysTillHolidayResponse">
<wsdl:part element="tns:getDaysTillHolidayResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="getDaysTillHoliday">
<wsdl:part element="tns:getDaysTillHoliday" name="parameters"/>
</wsdl:message>
<wsdl:portType name="HolidayCalculatorWS">
<wsdl:operation name="getDaysTillHoliday">
<wsdl:input message="tns:getDaysTillHoliday" name="getDaysTillHoliday"/>
<wsdl:output message="tns:getDaysTillHolidayResponse" name="getDaysTillHolidayResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="DefaultHolidayCalculatorWSServiceSoapBinding" type="tns:HolidayCalculatorWS">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getDaysTillHoliday">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="getDaysTillHoliday">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getDaysTillHolidayResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="DefaultHolidayCalculatorWSService">
<wsdl:port binding="tns:DefaultHolidayCalculatorWSServiceSoapBinding" name="DefaultHolidayCalculatorWSPort">
<soap:address location="http://localhost:8082/HolidayCalcWS/DefaultHolidayCalculatorWS"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>