JbossWS Webservice @In for injection not working.
davidfdr.davidfdr.gmail.com May 22, 2010 3:01 AMHi.
I am using the following configuration:
Jboss 4.2.3
Seam 2.1.2
Java 5
I have a webservice (Not stateless ejb) correct deployed.
When I try to use @In to inject a EJB (Stateless), the component is allways null.
When I try to use Component.getInstance() aproach, I am getting the following exception: java.lang.IllegalStateException: No active event context
My web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <listener> <listener-class>org.jboss.seam.servlet.SeamListener</listener-class> </listener> <filter> <filter-name>Seam Servlet Filter</filter-name> <filter-class>org.jboss.seam.servlet.SeamServletFilter</filter-class> </filter> <filter-mapping> <filter-name>Seam Servlet Filter</filter-name> <url-pattern>/TesteWebService</url-pattern> </filter-mapping> <context-param> <param-name>javax.faces.DEFAULT_SUFFIX</param-name> <param-value>.xhtml</param-value> </context-param> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.seam</url-pattern> </servlet-mapping> <session-config> <session-timeout>10</session-timeout> </session-config> <servlet> <servlet-name>TesteWebService</servlet-name> <servlet-class>br.gov.infosolo.servico.TesteWebService</servlet-class> </servlet> <servlet-mapping> <servlet-name>TesteWebService</servlet-name> <url-pattern>/TesteWebService</url-pattern> </servlet-mapping> </web-app>
My webservice:
/* * 21/05/2010 20:45:11 * TesteWebService.java * david */ package br.gov.infosolo.servico; import javax.jws.WebMethod; import javax.jws.WebService; import org.jboss.seam.Component; import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Name; import br.com.infosolo.negocio.ejb.TesteInjectionLocal; @WebService @Name("TesteWebService") public class TesteWebService { @In(create=true) private TesteInjectionLocal testeInjection; @WebMethod public String teste(String teste){ TesteInjectionLocal testeInjection = (TesteInjectionLocal)Component.getInstance("testeInjection"); String teste2 = testeInjection.helloInjection(teste); return "Testando: " + teste + " - " + teste2; } }
The seam context appears to be ok when we are using a jsf normal page.
Anybody help me please.