2013-04-15 2 views
4

J'essaie actuellement de permettre à mon application de fournir un service web. L'application utilise Spring et fonctionne sous une instance Weblogic 10.3.WebService n'est pas "visible" dans WebLogic 10.3

J'ai construit le webservice suivant l'approche du «contrat d'abord». Donc, ce que j'ai fondamentalement, c'est une interface WS générée, mon implémentation de cette interface, un fichier web.xml définissant les servlet-bindings et un sun-jaxws.xml définissant le point final. (plus ou moins similaire à ceci: http://www.mkyong.com/webservices/jax-ws/deploy-jax-ws-web-services-on-tomcat/).

Maintenant, après avoir déployé mon application sur weblogic, tout fonctionne correctement. Je peux taper l'URL du WebService dans mon navigateur, je vois le WSDL, je peux appeler ses méthodes. Si ce n'était pas un petit fait cosmétique: Dans la présentation des déploiements de WL lorsque je clique sur le déploiement, il me montre une liste de WebServices ... qui est vide. Donc mon webservice n'est pas listé ici. Donc, quelqu'un peut-il me dire ce que je dois faire pour que le webservice apparaisse là-bas?

Répondre

0

Selon le développeur qui a créé le service Web, les descripteurs de déploiement tels que webservices.xml et weblogic-webservices.xml ont été ajoutés à l'application. Les descripteurs sont utilisés pour la configuration, remplaçant les paramètres par défaut et ajoutant des métadonnées. Pour les services Web, il peut s'agir du noeud final, de la configuration du port, du lien entre le service Web et les composants EJB, etc. Une fois déployé, l'emplacement WSDL des services Web est répertorié dans la console WebLogic et le fichier WSDL peut être récupéré lors de l'exécution.

From the Trenches 2 | Patching OSB and SOA Suite to PS5

Voir aussi:

+0

Honnêtement, je n'ai 'webservices.xml' ni' weblogic -webservices.xml'. Mais en regardant dans le docu d'oracle (premier lien de votre "voir aussi"), il indique que je ne devrais pas avoir besoin de créer/toucher: "Cette section est publiée à titre informatif seulement. Administration Console ou en utilisant des annotations JWS et vous n'aurez pas besoin de modifier directement l'un des fichiers descripteur de déploiement. " – Bluddymarri

1

Bien qu'il n'est pas vraiment essentiel d'avoir un descripteur de webservice pour JAX-WS, Weblogic parfois échoue pour identifier les WebServices (n'a pas pu trouver une raison f ou ceci)

Ci-dessous est ce que j'ai fait pour le faire fonctionner. Ajouter la classe d'implémentation WebService comme Servlet dans web.xml

<?xml version='1.0' encoding='UTF-8'?> 
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" id="WebApp_ID"> 
    <display-name>MyWebService</display-name> 
    <servlet> 
    <servlet-name>serviceServlet</servlet-name> 
    <servlet-class>com.aneesh.WebServiceImpl</servlet-class> 
    <load-on-startup>0</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>serviceServlet</servlet-name> 
    <url-pattern>/Service</url-pattern> 
    </servlet-mapping> 
</web-app> 

et ajoutez le descripteur de webservice (webservices.xml)

<?xml version='1.0' encoding='UTF-8'?> 
<webservices xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.1"> 
    <webservice-description> 
    <webservice-description-name>MyWebService</webservice-description-name> 
    <port-component> 
     <port-component-name>MyWebServiceSoapPort</port-component-name> 
     <wsdl-port xmlns:an="http://www.aneesh.com/service">an:MyWebServiceSoapPort</wsdl-port> 
     <service-endpoint-interface>com.aneesh.WebService</service-endpoint-interface> 
     <service-impl-bean> 
     <servlet-link>serviceServlet</servlet-link> 
     </service-impl-bean> 
    </port-component> 
    </webservice-description> 
</webservices> 
Questions connexes