Bonjour....,
Je veux utiliser les EJB dans mon web service. Mais celá n´a jamais marché !
Pourquoi ?
EJB, trés simple :
Voici le webservice qui lui est associé :package com.Bridge.finalStep;
import javax.annotation.PostConstruct;
import javax.ejb.Singleton;
import javax.xml.ws.WebServiceRef;
/**
*
* @author mdieng
*/
@Singleton
public class JavaBeans {
private String word ;
private int tLang, fLang;
public JavaBeans(){
}
/*
* return the given word
*/
public String getWord(){
return word;
}
/*
* the word to set
*/
public void setWord(String word){
this.word=word;
}
/*
* return the original language of the word to translate
*/
public int getfLang(){
return fLang;
}
/*
* setting the from language
*/
public void setfLang(int fLang){
this.fLang=fLang;
}
/*
* return the destination language
*/
public int gettLang(){
return tLang;
}
/*
* setting the destination language
*/
public void settlang(int tLang){
this.tLang=tLang;
}
}
Mais quand je teste, j´ai cette erreure, vraiment trés méchante !package com.Bridge.finalStep;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.Consumes;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.xml.ws.WebServiceRef;
/**
* REST Web Service
*
* @author mdieng
*/
@Path("translating")
@Stateless
public class TranslatingResource {
@WebServiceRef(wsdlLocation = "WEB-INF/wsdl/api.xlingua.de/XLinguaService.svc.wsdl")
private XLinguaService service;
private java.lang.Integer fLang ;
private java.lang.Integer tLang;
private java.lang.String word ;
/* @EJB
private JavaBeans javaBeans;
@Context
private UriInfo context;
/** Creates a new instance of TranslatingResource */
public TranslatingResource() {
}
/**
* Retrieves representation of an instance of com.Bridge.finalStep.TranslatingResource
* @return an instance of com.microsoft.schemas._2003._10.serialization.arrays.ArrayOfanyType
*/
@GET
public ArrayList<String> getXml() {
ArrayList<String> array = new ArrayList<String>();
try { // Call Web Service Operation
com.Bridge.finalStep.IXLinguaService port = service.getWSHttpBindingIXLinguaService();
// TODO initialize WS operation arguments here
java.lang.Integer fLang = this.flang;
java.lang.Integer tLang = this.tlang;
java.lang.String word = this.mot;
// TODO process result here
com.Bridge.finalStep.ArrayOfanyType result = port.getTranslations(fLang, tLang, word);
array.add(result.getAnyType().toString());
} catch (Exception ex) {
// TODO handle custom exceptions here
}
return array;
}
/**
* PUT method for updating or creating an instance of TranslatingResource
* @param content representation for the resource
* @return an HTTP response with content of the updated or created resource.
*/
@PUT
@Consumes("application/xml")
public void putXml(int l1, int l2, String w) {
/* javaBeans.setfLang(l1);
javaBeans.setfLang(l2);
javaBeans.setWord(w);*/
}
}
Je ne sais vraiment pas la raison.java.lang.ClassCastException: com.sun.xml.ws.util.ServiceConfigurationError cannot be cast to java.lang.Exception
at javax.ejb.EJBException.getCausedByException(EJBException.java:83)
at com.sun.jersey.server.impl.ejb.EJBExceptionMapper.toResponse(EJBExceptionMapper.java:60)
at com.sun.jersey.server.impl.ejb.EJBExceptionMapper.toResponse(EJBExceptionMapper.java:51)
at com.sun.jersey.server.impl.application.WebApplicationImpl.mapException(WebApplicationImpl.java:1097)
at com.sun.jersey.server.impl.application.WebApplicationImpl.mapMappableContainerException(WebApplicationImpl.java:1062)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:781)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:740)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:731)
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:372)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:452)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:633)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
Partager