2011-06-28 4 views
2

J'ai inclus la classe ci-dessous dans un fichier EAR que j'ai déployé sur Weblogic 10.3.@WebService L'annotation ne fonctionne pas sur Weblogic 10.3

Je pensais que c'était tout ce dont j'avais besoin pour que le service Web soit disponible pour utilisation.

Dans la console - quand j'élargissons l'AER i voir

WebServices -> None to display

  • L'AER est déployée et active.
  • WebServiceMain est certainement emballé dans l'oreille

Je sais qu'il ya des tâches CMJS je peux ajouter au script ANT - mais je pense qu'il était aussi simple que cela?

package messagecenter.ws; 

import javax.jws.WebService; 
import javax.jws.WebMethod; 

/** 
* @author KwikkSilva 
*/ 
@WebService 
public class WebServiceMain { 

    @WebMethod 
    public String getHello() 
    { 
    return "hello!!!!!"; 
    } 
} 
+0

est simple comme ceci dans jee6 mais vous travaillez dans 10.3 qui est jee5 alors essayez la réponse ci-dessous – Cris

Répondre

1

Suivez ce tutoriel: http://download.oracle.com/docs/cd/E12840_01/wls/docs103/webserv/setenv.html#IterativeDevelopment

Toutefois, si votre package de déploiement est une oreille, vous devez avoir un application.xml où vous indiquerez que vous avez une guerre ou un bocal comme module à l'intérieur.

<?xml version="1.0" encoding="UTF-8"?> 
<application> 
    <display-name>cccc</display-name> 
    <description>some ws</description> 
    <module> 
     <web> 
     <web-uri>webservice.war</web-uri> 
     <context-root>client</context-root> 
     </web> 
    </module> 
</application> 
+1

Merci pour la réponse Cris - je pense que cela pourrait être le chemin à parcourir. Je pensais que je n'avais pas besoin d'entrer dans ce niveau - et juste l'annoter et l'emballer dans un JAR puis un EAR mais il pourrait avoir besoin de la guerre comme vous l'avez dit. – KwikkySilva

0

s'il vous plaît @Stateless, bien que je ne ai pas trouvé nulle part dans les documents mais en ajoutant @Stateless il reconnaît et crée donc webservice votre code ressemblera à ceci



package messagecenter.ws; 
import javax.ejb.Stateless; 
import javax.jws.WebService; 
import javax.jws.WebMethod; 

/** 
* @author KwikkSilva 
*/ 
@Stateless 
@WebService 
public class WebServiceMain { 

    @WebMethod 
    public String getHello() 
    { 
    return "hello!!!!!"; 
    } 
} 
0

J'ai eu le même problème. Après avoir fait beaucoup de recherches, la solution était de préciser dans weblogic-application.xml, dans les packages d'application prefer-balise les éléments suivants:

<prefer-application-packages> 
    <package-name>com.sun.xml.internal.messaging.saaj.soap.*</package-name> 
    <package-name>weblogic.wsee.saaj.*</package-name> 
</prefer-application-packages> 

De plus, j'importé le saaj-impl-1.3.1.8 .jar dans mon projet. Cela a fait l'affaire, et la raison en est que, pour effectuer certaines opérations SOAP, weblogic semble préférer certaines bibliothèques par défaut qui ne reconnaissent pas correctement l'annotation @WebService.

Questions connexes