2010-03-30 6 views
1

J'utilise CXF (qui génère automatiquement mes services web dans mon fichier pom.xml depuis mon fichier wsdl) avec JBoss (eclipse ide), et j'ai des problèmes pour accéder au service web depuis mon site web application. J'ai trouvé cette ressource: http://blog.progs.be/?p=92 mais j'ai vraiment du mal à utiliser WSDL_LOCATION = cl.getResource ("my/progam/pack/wsdl/myService.wsdl"); travailler correctement dans mon code.Java Classpath Problèmes avec Webservices (CXF) et Jboss

J'ai mes fichiers WSDL situé dans src/main/wsdl et ont ajouté la ligne suivante dans le fichier .classpath: classpathentry type = chemin "src" = "src/main/wsdl"

J'ai aussi créé le dossiers my, programme, pack, wsdl et a déposé mes wsdls dans cet endroit, de sorte qu'il est accessible. Toutefois, l'appel classloader.getResource renvoie toujours la valeur null quelle que soit la méthode utilisée. Lorsque je spécifie getResource ("/wsdl/myService.wsdl"), il ne renvoie pas de valeur nulle, mais je crois qu'il regarde le chemin complet du fichier et non ce dont j'ai besoin (en considérant qu'une partie de l'URL contient le chemin vers le wsdl déposer tout le chemin à travers le répertoire du serveur jboss et comprend le

dir WEB-INF. est-ce mon fichier .classpath mis en place de manière incorrecte ou suis-je manque quelque chose d'autre?

si l'emplacement WSDL n'est pas corriger toujours Lance une exception ClassCast comme suit:

java.lang.ClassCastException: org.apache.cxf.jaxws.ServiceImpl at javax .xml.ws.Service. (Service.java:81)

+0

Quelles versions de JRE, CXF et JBoss? – skaffman

+0

cxf 2.2.7, jboss 4.2.3, jre 1.5 – JohnC

+0

Consommation de services Web ou exposition de services Web? – ScArcher2

Répondre

1

J'ai mes fichiers WSDL situé dans src/main/wsdl (...)

Afin d'obtenir des fichiers thèses sur le chemin de la classe, vous besoin de déclarer le répertoire en tant que ressource dans votre POM:

<project> 
    ... 
    <build> 
    <resources> 
     <resource> 
     <directory>src/main/resources</directory> 
     </resource> 
     <resource> 
     <directory>src/main/wsdl</directory> 
     </resource> 
    </resources> 
    ... 
    </build> 
</project> 

Et maintenant, vos fichiers WSDL devraient finir dans le répertoire classes.

+0

La webapp est le client. J'essaie d'utiliser classpath au lieu de chemins absolus, ça ne marche tout simplement pas. – JohnC

+0

@JohnC Voir ma mise à jour. Si vous ne l'avez pas dans votre fichier pom.xml, veuillez réessayer. –

+0

cela a fonctionné, merci, maintenant pour mon problème de classloader. – JohnC