2010-12-07 6 views
6

J2EE 6 vous pouvez exposer votre bean session EJB en tant que service Web REST comme ci-dessousRévéler méthode EJB en tant que service REST

@Stateless 
@Path("/test") 
public class TestSessionBean { 
    @GET 
    @Produces("application/xml") 
    public String getTest() { 
    return "<?xml version='1.0' encoding='UTF-8'?><val>test session bean</val>"; 
    } 
} 

Cependant, cela fonctionne quand je packager EJB dans le .war, lorsque je tente pour empaqueter mon projet dans des modules web et ejb séparés à l'intérieur d'un fichier EAR, j'obtiens une erreur HTML 404 non trouvée.

Quelqu'un peut-il expliquer?

J'utilise Glassfish v3

Voici mon web.xml

<servlet> 
    <servlet-name>TaskRestService</servlet-name> 
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 
    <load-on-startup>1</load-on-startup> 


</servlet> 
<servlet-mapping> 
    <servlet-name>TaskRestService</servlet-name> 
<url-pattern>/services/*</url-pattern> 
</servlet-mapping> 
+0

J'ai le même problème avec Glassfish v4.1.1. Tout fonctionne bien emballé dans un fichier WAR, mais je reçois un 404 lorsqu'il est empaqueté dans un fichier EAR. – Pedro

Répondre

5

JAX-RS annotés haricots d'entreprise dans un autonome ou dans un fichier séparé ejb-jar qui est inclus dans un EAR n'est pas supporté.

Voir ci-dessous

http://pic.dhe.ibm.com/infocenter/wasinfo/v8r0/index.jsp?topic=%2Fcom.ibm.websphere.nd.iseries.doc%2Finfo%2Fiseriesnd%2Fae%2Ftwbs_jaxrs_ejb_localinterface.html

+0

IBM a changé cela pour Websphere 8.5.5 (votre lien est pour la version 8.0.0) il indique maintenant "JOB-RS annoté enterprise beans dans un ejb- Le fichier jar inclus dans un fichier EAR est ** maintenant ** pris en charge Voir Déploiement d'EJB dans un fichier EAR. " https://www.ibm.com/support/knowledgecenter/SSAW57_8.5.5/com.ibm.websphere.nd.iseries.doc/ae/twbs_jaxrs_ejb_localinterface.html – Pedro

Questions connexes