1

JBoss AS 7.2 で実行する最初の Web サービスを実装しようとしています。wsdlLocation-Property を使用して、サービスを定義済みの wsdl ファイルにリンクします。

@Stateless
@WebServiceProvider(wsdlLocation = "classpath:wsdl\\prototype.wsdl")
public class MyServiceImpl implements MyPort {


   @Override
   public PingResponse ping(PingRequest request) {
    //someCode
   }
}

私の wsdl には、同じディレクトリ/クラスパスの場所に保存されている xsd ファイルが含まれています。

    <wsdl:types>
       <xs:schema targetNamespace="http://prototype/type" elementFormDefault="qualified">
         <xs:include schemaLocation="prototype.xsd"/>
       </xs:schema>
    </wsdl:types>

しかし、私の jboss がこの xsd ファイルを見つけられないようです。むしろ、彼は正しい位置で検索しません。私が間違っていることは何ですか?

Caused by: javax.wsdl.WSDLException: WSDLException (at /wsdl:definitions/wsdl:types/schema): faultCode=PARSER_ERROR: Problem parsing 'prototype.xsd'.: java.io.FileNotFoundException: C:\tools\jboss\bin\prototype.xsd (The system cannot find the file specified)
at com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(WSDLReaderImpl.java:2111)
at com.ibm.wsdl.xml.WSDLReaderImpl.parseSchema(WSDLReaderImpl.java:808)
at com.ibm.wsdl.xml.WSDLReaderImpl.parseSchema(WSDLReaderImpl.java:632)
at com.ibm.wsdl.xml.WSDLReaderImpl.parseTypes(WSDLReaderImpl.java:593)
at com.ibm.wsdl.xml.WSDLReaderImpl.parseDefinitions(WSDLReaderImpl.java:305)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2265)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2251)
at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:261)
at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:206)
at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:349)
... 13 more
4

2 に答える 2

0

ああ...解決策を見つけました。wsdl および xsd は、META-INF/wsdl または WEB-INF/wsdl に配置する必要があります。クラスパスの別の場所が機能していないようです。

于 2014-04-29T05:48:16.977 に答える