[EJB/JBoss] - Jboss 4.2.2 and TimerService
by kyle.bober
I have a Stateless session bean that is also a WebService. When I attempt to inject a TimerService and create a new timer Instance the TimerService is always returned as null. It seems the TimerService is never injected. I alos attempted injecting the SessionContext as well using @Resource and obtaining the TimerService via the SessionContext but the SessionContext is also null. Here is the code:
package somepackage;
import java.rmi.RemoteException;
import java.util.Date;
import java.util.Set;
import javax.annotation.Resource;
import javax.ejb.Remote;
import javax.ejb.SessionContext;
import javax.ejb.Stateless;
import javax.ejb.Timeout;
import javax.ejb.Timer;
import javax.ejb.TimerService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import org.jboss.annotation.ejb.RemoteBinding;
import org.jboss.annotation.ejb.Service;
/**
* Class which contains each of the services calls used by the client side.
* @author pcrane
*
*/
@WebService
@Stateless
@Remote(IMemberService.class)
@RemoteBinding(jndiBinding="MemberService/remote")
public class MemberService implements IMemberService
{
// @Resource
// public SessionContext theSessionContext;
@Resource
public TimerService theTimerService;
@Timeout
public void deleteUnauthorizedMembers(Timer aTimer) throws RemoteException
{
Long memberID = (Long) aTimer.getInfo();
MemberServiceImpl.deleteMember(memberID);
}
/* (non-Javadoc)
* @see com.thesearchagency.transformer.services.member.IMemberService#memberServiceUpdateAccount()
*/
@WebMethod
@WebResult(name = "memberID")
public String memberServicePersistMember(@WebParam(name="memberProfile") MemberServiceUser aUser) throws RemoteException
{
TimerService ts = theSessionContext.getTimerService();
ts.createTimer(timerExecutionDate, aUser.getMemberId());
return MemberServiceImpl.memberServicePersistMember(aUser);
}
}
package somepackage;
import java.rmi.RemoteException;
import java.util.Date;
import java.util.Set;
public interface IMemberService
{
String memberServicePersistMember(MemberServiceUser aUser) throws RemoteException;
}
Please help! I ahve been racking my brain on this for a few hours now and Timers should be fairly easy in EJB3.0!
Thanks,
Kyle
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4170643#4170643
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4170643
17 years, 11 months
[Installation, Configuration & DEPLOYMENT] - JBoss fails with
by ritesh001
I'm trying to deploy a simple HelloWorld service on JBoss but I keep getting "cannot find endpoint meta data" error.
This and other services deploy just fine over GlassFish and WebLogic. I've looked every where and exhausted every means to find an answer, this is last hope. Please help!!!
Here's the error:
| 10:22:04,883 INFO [TomcatDeployer] deploy, ctxPath=/HelloWorldService, warUrl=.../tmp/deploy/tmp574
| 20HelloWorldService-exp.war/
| 10:22:04,935 INFO [WebappClassLoader] validateJarFile(/opt/wfnp/jboss-4.2.3.GA/server/default/./tmp
| /deploy/tmp57420HelloWorldService-exp.war/WEB-INF/lib/servlet-api-2.3.jar) - jar not loaded. See Ser
| vlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
| 10:22:05,205 ERROR [MainDeployer] Could not start deployment: file:/opt/wfnp/jboss-4.2.3.GA/server/d
| efault/deploy/HelloWorldService.war
| java.lang.IllegalStateException: Cannot find endpoint meta data for: HelloWorldService
| at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.getEndpointMetaData(UnifiedMetaDataDepl
| oymentAspect.java:118)
| at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.j
| ava:87)
| at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.start(DeploymentAspectManagerImpl
| .java:146)
| at org.jboss.wsf.container.jboss42.LazyAssemblyWSFRuntime.start(LazyAssemblyWSFRuntime.java:66)
| at org.jboss.wsf.container.jboss42.JAXWSDeployerHookPostJSE.deploy(JAXWSDeployerHookPostJSE.java:52
| )
| at org.jboss.wsf.container.jboss42.DeployerInterceptor.start(DeployerInterceptor.java:90)
| at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerIntercepto
| rSupport.java:188)
| at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
| at $Proxy45.start(Unknown Source)
| :
| :
|
Here's my java class, web.xml, and the WSDL file
package com.my.services.helloworld;
|
| import javax.jws.WebMethod;
| import javax.jws.WebService;
|
| @WebService(endpointInterface = "com.my.services.helloworld.HelloWorldPortType",
| portName = "HelloWorldPort",
| serviceName = "HelloWorldService",
| targetNamespace = "http://services.my.com/helloworld",
| wsdlLocation = "WEB-INF/wsdl/HelloWorldService.wsdl")
| public class HelloWorldServiceImpl implements HelloWorldPortType
| {
| public String helloWorld(String name) throws ServiceExceptionMessage
| {
| try
| {
| return ("Hello there, " + name);
| }
| catch (Exception ex)
| {
| ServiceFault sf = new ServiceFault();
| sf.setErrorMessage(ex.getMessage());
| throw new ServiceExceptionMessage("Error Saying Hello", sf, ex);
| }
| }
| }
|
web.xml
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
| http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
| <servlet>
| <servlet-name>HelloWorldService</servlet-name>
| <servlet-class>com.my.services.helloworld.HelloWorldServiceImpl</servlet-class>
| </servlet>
| <servlet-mapping>
| <servlet-name>HelloWorldService</servlet-name>
| <url-pattern>/HelloWorldService</url-pattern>
| </servlet-mapping>
| <session-config>
| <session-timeout>30</session-timeout>
| </session-config>
| </web-app>
|
sun-jaxws.xml
| <?xml version="1.0" encoding="UTF-8"?>
| <endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0">
| <endpoint name="HelloWorldService"
| implementation="com.my.services.helloworld.HelloWorldServiceImpl"
| wsdl="WEB-INF/wsdl/HelloWorldService.wsdl"
| service="{http://services.my.com/helloworld}HelloWorldService"
| port="{http://services.my.com/helloworld}HelloWorldPort"
| url-pattern="/HelloWorldService"/>
| </endpoints>
|
HelloWorldService.wsdl
| <?xml version="1.0" encoding="UTF-8"?>
| <definitions
| name="HelloWorldService"
| targetNamespace="http://services.my.com/helloworld"
| xmlns:xsd="http://www.w3.org/2001/XMLSchema"
| xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
| xmlns:tns="http://services.my.com/helloworld"
| xmlns="http://schemas.xmlsoap.org/wsdl/">
| <types>
| <schema xmlns="http://www.w3.org/2001/XMLSchema"
| elementFormDefault="qualified"
| xmlns:tns="http://services.my.com/helloworld"
| targetNamespace="http://services.my.com/helloworld">
| <xsd:element name="helloWorld">
| <complexType>
| <xsd:sequence>
| <xsd:element name="name" type="xsd:string"/>
| </xsd:sequence>
| </complexType>
| </xsd:element>
| <xsd:element name="helloWorldResponse">
| <xsd:complexType>
| <xsd:sequence>
| <xsd:element name="return" type="xsd:string"/>
| </xsd:sequence>
| </xsd:complexType>
| </xsd:element>
| <xsd:element name="ServiceFault">
| <xsd:complexType>
| <xsd:sequence>
| <xsd:element name="errorMessage" nillable="false" type="xsd:string"/>
| </xsd:sequence>
| </xsd:complexType>
| </xsd:element>
| </schema>
| </types>
| <message name="helloWorldRequest">
| <part element="tns:helloWorld" name="parameters"/>
| </message>
| <message name="helloWorldResponse">
| <part element="tns:helloWorldResponse" name="parameters"/>
| </message>
| <message name="ServiceExceptionMessage">
| <part element="tns:ServiceFault" name="fault"/>
| </message>
| <portType name="HelloWorldPortType">
| <operation name="helloWorld">
| <input message="tns:helloWorldRequest" name="helloWorldRequest"/>
| <output message="tns:helloWorldResponse" name="helloWorldResponse"/>
| <fault message="tns:ServiceExceptionMessage" name="ServiceException"/>
| </operation>
| </portType>
| <binding name="HelloWorldPortBinding" type="tns:HelloWorldPortType">
| <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
| <operation name="helloWorld">
| <soap:operation soapAction=""/>
| <input name="helloWorldRequest">
| <soap:body use="literal"/>
| </input>
| <output name="helloWorldResponse">
| <soap:body use="literal"/>
| </output>
| <fault name="ServiceException">
| <soap:fault name="ServiceException" use="literal"/>
| </fault>
| </operation>
| </binding>
| <service name="HelloWorldService">
| <port binding="tns:HelloWorldPortBinding" name="HelloWorldPort">
| <soap:address location="http://localhost:8080/helloworld/HelloWorldService"/>
| </port>
| </service>
| </definitions>
|
I don't know what am i doing wrong, the war file deploys on GlassFish and I'm able to get use the service using SaopUI, but can't deploy on JBoss.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4170640#4170640
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4170640
17 years, 11 months
[JBoss Getting Started Documentation] - Simple HelloWorld fails with
by ritesh001
I'm trying to deploy a simple HelloWorld service on JBoss (which deploys just fine over GlassFish and WebLogic) but I keep getting "cannot find endpoint meta data" error. I've looked every where and exhausted every means to find an answer, this is last hope. Please help!!!
Here's the error
| 10:22:04,883 INFO [TomcatDeployer] deploy, ctxPath=/HelloWorldService, warUrl=.../tmp/deploy/tmp57420HelloWorldService-exp.war/
| 10:22:04,935 INFO [WebappClassLoader] validateJarFile(/opt/wfnp/jboss-4.2.3.GA/server/default/./tmp/deploy/tmp57420HelloWorldService-exp.war/WEB-INF/lib/servlet-api-2.3.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
| 10:22:05,205 ERROR [MainDeployer] Could not start deployment: file:/opt/wfnp/jboss-4.2.3.GA/server/default/deploy/HelloWorldService.war
| java.lang.IllegalStateException: Cannot find endpoint meta data for: HelloWorldService
| at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.getEndpointMetaData(UnifiedMetaDataDeploymentAspect.java:118)
| at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:87)
| at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.start(DeploymentAspectManagerImpl.java:146)
| at org.jboss.wsf.container.jboss42.LazyAssemblyWSFRuntime.start(LazyAssemblyWSFRuntime.java:66)
| at org.jboss.wsf.container.jboss42.JAXWSDeployerHookPostJSE.deploy(JAXWSDeployerHookPostJSE.java:52)
| at org.jboss.wsf.container.jboss42.DeployerInterceptor.start(DeployerInterceptor.java:90)
| at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188)
| at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
| at $Proxy45.start(Unknown Source)
| :
| :
|
Here's my java class, web.xml, and the WSDL file
| package com.my.services.helloworld;
|
| import javax.jws.WebMethod;
| import javax.jws.WebService;
|
| @WebService(endpointInterface = "com.my.services.helloworld.HelloWorldPortType",
| portName = "HelloWorldPort",
| serviceName = "HelloWorldService",
| targetNamespace = "http://services.my.com/helloworld",
| wsdlLocation = "WEB-INF/wsdl/HelloWorldService.wsdl")
| public class HelloWorldServiceImpl implements HelloWorldPortType
| {
| public String helloWorld(String name) throws ServiceExceptionMessage
| {
| try
| {
| return ("Hello there, " + name);
| }
| catch (Exception ex)
| {
| ServiceFault sf = new ServiceFault();
| sf.setErrorMessage(ex.getMessage());
| throw new ServiceExceptionMessage("Error Saying Hello", sf, ex);
| }
| }
| }
web.xml
| <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
| <servlet>
| <servlet-name>HelloWorldService</servlet-name>
| <servlet-class>com.my.services.helloworld.HelloWorldServiceImpl</servlet-class>
| </servlet>
| <servlet-mapping>
| <servlet-name>HelloWorldService</servlet-name>
| <url-pattern>/HelloWorldService</url-pattern>
| </servlet-mapping>
| <session-config>
| <session-timeout>30</session-timeout>
| </session-config>
| </web-app>
|
sun-jaxws.xml
| <?xml version="1.0" encoding="UTF-8"?>
| <endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0">
| <endpoint name="HelloWorldService"
| implementation="com.my.services.helloworld.HelloWorldServiceImpl"
| wsdl="WEB-INF/wsdl/HelloWorldService.wsdl"
| service="{http://services.my.com/helloworld}HelloWorldService"
| port="{http://services.my.com/helloworld}HelloWorldPort"
| url-pattern="/HelloWorldService"/>
| </endpoints>
|
HelloWorldService.wsdl
| <?xml version="1.0" encoding="UTF-8"?>
| <definitions
| name="HelloWorldService"
| targetNamespace="http://services.my.com/helloworld"
| xmlns:xsd="http://www.w3.org/2001/XMLSchema"
| xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
| xmlns:tns="http://services.my.com/helloworld"
| xmlns="http://schemas.xmlsoap.org/wsdl/">
| <types>
| <schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:tns="http://services.my.com/helloworld" targetNamespace="http://services.my.com/helloworld">
| <xsd:element name="helloWorld">
| <complexType>
| <xsd:sequence>
| <xsd:element name="name" type="xsd:string"/>
| </xsd:sequence>
| </complexType>
| </xsd:element>
| <xsd:element name="helloWorldResponse">
| <xsd:complexType>
| <xsd:sequence>
| <xsd:element name="return" type="xsd:string"/>
| </xsd:sequence>
| </xsd:complexType>
| </xsd:element>
| <xsd:element name="ServiceFault">
| <xsd:complexType>
| <xsd:sequence>
| <xsd:element name="errorMessage" nillable="false" type="xsd:string"/>
| </xsd:sequence>
| </xsd:complexType>
| </xsd:element>
| </schema>
| </types>
| <message name="helloWorldRequest">
| <part element="tns:helloWorld" name="parameters"/>
| </message>
| <message name="helloWorldResponse">
| <part element="tns:helloWorldResponse" name="parameters"/>
| </message>
| <message name="ServiceExceptionMessage">
| <part element="tns:ServiceFault" name="fault"/>
| </message>
| <portType name="HelloWorldPortType">
| <operation name="helloWorld">
| <input message="tns:helloWorldRequest" name="helloWorldRequest"/>
| <output message="tns:helloWorldResponse" name="helloWorldResponse"/>
| <fault message="tns:ServiceExceptionMessage" name="ServiceException"/>
| </operation>
| </portType>
| <binding name="HelloWorldPortBinding" type="tns:HelloWorldPortType">
| <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
| <operation name="helloWorld">
| <soap:operation soapAction=""/>
| <input name="helloWorldRequest">
| <soap:body use="literal"/>
| </input>
| <output name="helloWorldResponse">
| <soap:body use="literal"/>
| </output>
| <fault name="ServiceException">
| <soap:fault name="ServiceException" use="literal"/>
| </fault>
| </operation>
| </binding>
| <service name="HelloWorldService">
| <port binding="tns:HelloWorldPortBinding" name="HelloWorldPort">
| <soap:address location="http://localhost:8080/helloworld/HelloWorldService"/>
| </port>
| </service>
| </definitions>
|
I don't know what am i doing wrong, the war file deploys on GlassFish and I'm able to get use the service using SaopUI, but can't deploy on JBoss.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4170637#4170637
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4170637
17 years, 11 months
[Installation, Configuration & DEPLOYMENT] - error 401
by edgoquist
I'm using jboss-4.2.2GA and I'm using it the easiest way I can. I've simply created a directory named ROOT.war under the deploy directory and added a WEB-INF/web.xml file and voila. I also have some restricted pages that are protected by a login-config.
When I include an error-page element in the web.xml file:
<error-page>
<error-code>401</error-code>
/errorpages/mypage401.html
</error-page>
I get an HTTP 401 error every time I try to access a protected page (the auth-method is BASIC). To fix the problem, all I have to do is remove the <error-page> definition.
Here's the entire web.xml file:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<security-constraint>
<web-resource-collection>
<web-resource-name>eriktest</web-resource-name>
eriktest
<url-pattern>/protected/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>Employee</role-name>
</auth-constraint>
<transport-guarantee>NONE</transport-guarantee>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
<error-page>
<error-code>401</error-code>
/errorpages/mypage401.html
</error-page>
</web-app>
I've searched and found that a number of people have complained about the same thing but I haven't been able to find a solution. Does one exist?
Thanks.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4170635#4170635
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4170635
17 years, 11 months