2014-04-28 3 views
0

J'essaie d'implémenter un premier service Web fonctionnant dans JBoss AS 7.2. J'utilise le wsdlLocation-propriété pour relier mon service avec un fichier wsdl prédéfini:Webservice dans JBoss ne trouve pas xsd

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


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

Dans mon wsdl inclure un fichier xsd stocké dans le même emplacement répertoire/classpath:

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

Mais il semble , que mon jboss ne trouve pas ce fichier xsd. Ou mieux, il ne cherche pas au bon endroit. Qu'est-ce que je fais mal?

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 
+0

Je ne fais pas moi-même. Je m'attendais à ce que JBoss le fasse. – boskop

Répondre

0

Ah ... J'ai trouvé la solution. Les fichiers wsdl et xsd doivent être situés dans META-INF/wsdl ou WEB-INF/wsdl. Un autre endroit dans classpath ne semble pas fonctionner.

0

J'ai eu le même problème où un xsd n'a pas été trouvé pendant le déploiement. Ce problème était intermittent - parfois le déploiement était bon. Mon service structure contractuelle (wsdl) était comme:

WEB-INF 
    wsdl 
    xsd 
    policy 

je me suis déplacé xsd et politique sous wsdl et le problème intermittent a disparu.

Merci de prendre le temps de partager votre réponse. Ça m'a aidé!

Questions connexes