Ok.
I hadn't realized that since I just followed some examples in the JEE
tutorial.
Where can I find the spec?
What about the Destination (Topic) resource injection problem?
If I declared the initialDestination as javax.jms.Destination, I get an
exception upon resource injection, but if I declare it as a Topic everything
would be fine.
The reason I want to declare as a topic is that depending on the deployment
we make, jms/InitialDestination could be a Topic or a Queue.
thanks,
Daniel.
On 4/20/07, Sivakumar Thyagarajan <Sivakumar.Thyagarajan_at_sun.com> wrote:
>
> Hi Daniel
>
> > com.sun.messaging.jms.JMSException: MQRA:CA:Unsupported-stop()
> > at com.sun.messaging.jms.ra.ConnectionAdapter.stop(
> > ConnectionAdapter.java:198)
> > at com.localmatters.SampleWSBean.send(SampleWSBean.java:81)
>
> This is as per the Java EE Spec. "EE.6.6 Java™ Message Service (JMS) 1.1
> Requirements" mentions that "javax.jms.Connection method stop" could only
> be used by application components executing in the application client
> container and the "Java EE container may throw a JMSException (if allowed
> by the method) if the application component violates these restrictions"
>
> Thanks
> --Siva.
>
> Daniel Cavalcanti wrote:
> > Hello,
> > I'm getting an exception in a sample JMS app I wrote:
> >
> > package com.localmatters;
> >
> > import javax.annotation.PostConstruct;
> > import javax.annotation.PreDestroy;
> > import javax.annotation.Resource;
> > import javax.ejb.Stateless;
> > import javax.jms.Connection;
> > import javax.jms.ConnectionFactory;
> > import javax.jms.Message;
> > import javax.jms.MessageProducer;
> > import javax.jms.Session;
> > import javax.jms.Topic ;
> > import javax.jws.WebMethod;
> > import javax.jws.WebParam;
> > import javax.jws.WebService;
> >
> > @Stateless()
> > @WebService()
> > public class SampleWSBean {
> >
> > @Resource(mappedName="jms/ConnectionFactory")
> > private ConnectionFactory connectionFactory;
> >
> > @Resource(mappedName="jms/InitialDestination")
> > private Topic initialDestination;
> >
> > private Connection connection;
> > private Session session;
> > private MessageProducer producer;
> >
> > public SampleWSBean() {
> > System.out.println("Constructor: Connection Factory: \n" +
> > connectionFactory);
> > System.out.println("Constructor: InitialDestination: \n" +
> > initialDestination);
> > }
> >
> > @PostConstruct()
> > private void init() {
> > System.out.println("Init: Connection Factory: \n" +
> > connectionFactory);
> > System.out.println("Init: InitialDestination: \n" +
> > initialDestination);
> >
> > try {
> > connection = connectionFactory.createConnection("guest",
> > "guest");
> > } catch (Throwable ex) {
> > ex.printStackTrace();
> > }
> >
> > }
> >
> > @PreDestroy()
> > private void release() {
> > System.out.println("Release: Connection Factory: \n" +
> > connectionFactory);
> > System.out.println("Release: InitialDestination: \n" +
> > initialDestination);
> >
> > try {
> > connection.close();
> > } catch (Throwable ex) {
> > ex.printStackTrace();
> > }
> >
> > }
> >
> > @WebMethod()
> > public void send(@WebParam(name="msg") String message) {
> > System.out.println("Message: " + message);
> > System.out.println("Send: Connection Factory: \n" +
> > connectionFactory);
> > System.out.println("Send: InitialDestination: \n" +
> > initialDestination);
> >
> > try {
> >
> > session = connection.createSession(true, -1);
> > producer = session.createProducer(initialDestination);
> > Message msg = session.createTextMessage (message);
> >
> > connection.start();
> > producer.send(msg);
> > connection.stop();
> >
> > session.close();
> >
> > } catch (Throwable ex) {
> > ex.printStackTrace();
> > }
> >
> > }
> >
> > }
> >
> >
> > com.sun.messaging.jms.JMSException: MQRA:CA:Unsupported-stop()
> > at com.sun.messaging.jms.ra.ConnectionAdapter.stop(
> > ConnectionAdapter.java:198)
> > at com.localmatters.SampleWSBean.send(SampleWSBean.java:81)
> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > at sun.reflect.NativeMethodAccessorImpl.invoke
> > (NativeMethodAccessorImpl.java:39)
> > at
> > sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:25)
> > at java.lang.reflect.Method.invoke(Method.java:585)
> > at
> > com.sun.enterprise.security.application.EJBSecurityManager.runMethod
> > (EJBSecurityManager.java:1051)
> > at
> > com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:165)
> > at
> > com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(
> BaseContainer.java:2846)
> > at
> > com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3930)
> > at
> > com.sun.ejb.containers.WebServiceInvocationHandler.invoke(
> WebServiceInvocationHandler.java:176)
> > at $Proxy93.send(Unknown Source)
> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > at
> > sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:39)
> > at sun.reflect.DelegatingMethodAccessorImpl.invoke
> > (DelegatingMethodAccessorImpl.java:25)
> > at java.lang.reflect.Method.invoke(Method.java:585)
> > at
> > com.sun.enterprise.webservice.InvokerImpl.invoke(InvokerImpl.java:68)
> > at com.sun.enterprise.webservice.EjbInvokerImpl.invoke
> > (EjbInvokerImpl.java:75)
> > at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java
> :132)
> > at
> > com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(
> EndpointMethodHandler.java:241)
> > at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest
> > (SEIInvokerTube.java:75)
> > at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:559)
> > at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:518)
> > at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:503)
> > at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:400)
> > at
> > com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process(
> AbstractTubeImpl.java:70)
> > at com.sun.enterprise.webservice.MonitoringPipe.process
> > (MonitoringPipe.java:133)
> > at
> > com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(
> PipeAdapter.java:79)
> > at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:559)
> > at com.sun.xml.ws.api.pipe.Fiber._doRun (Fiber.java:518)
> > at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:503)
> > at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:400)
> > at com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process(
> > AbstractTubeImpl.java:70)
> > at
> > com.sun.xml.ws.mex.server.MetadataServerPipe.process(
> MetadataServerPipe.java:97)
> > at
> > com.sun.enterprise.webservice.CommonServerSecurityPipe.processRequest(
> CommonServerSecurityPipe.java
> > :191)
> > at
> > com.sun.enterprise.webservice.CommonServerSecurityPipe.process(
> CommonServerSecurityPipe.java:113)
> > at
> > com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(
> PipeAdapter.java:79)
> > at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:559)
> > at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:518)
> > at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:503)
> > at com.sun.xml.ws.api.pipe.Fiber.runSync (Fiber.java:400)
> > at
> > com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:208)
> > at
> > com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(
> HttpAdapter.java:374)
> > at com.sun.xml.ws.transport.http.HttpAdapter.handle
> > (HttpAdapter.java:175)
> > at
> > com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(
> ServletAdapter.java:134)
> > at
> > com.sun.enterprise.webservice.Ejb3MessageDispatcher.handlePost(
> Ejb3MessageDispatcher.java
> > :100)
> > at
> > com.sun.enterprise.webservice.Ejb3MessageDispatcher.invoke(
> Ejb3MessageDispatcher.java:74)
> > at
> > com.sun.enterprise.webservice.EjbWebServiceServlet.dispatchToEjbEndpoint
> (EjbWebServiceServlet.java
> > :187)
> > at
> > com.sun.enterprise.webservice.EjbWebServiceServlet.service(
> EjbWebServiceServlet.java:116)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> > at com.sun.enterprise.web.AdHocContextValve.invoke
> > (AdHocContextValve.java:101)
> > at
> > org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java
> :611)
> > at
> > org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java
> :564)
> > at
> > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java
> :558)
> > at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java
> :74)
> > at
> > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
> > :207)
> > at
> > org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java
> :611)
> > at
> > org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java
> :564)
> > at org.apache.catalina.core.StandardPipeline.invoke
> > (StandardPipeline.java:558)
> > at
> > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067)
> > at
> > org.apache.catalina.core.StandardEngineValve.invoke(
> StandardEngineValve.java:137)
> > at
> > org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java
> :611)
> > at
> > org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java
> :564)
> > at org.apache.catalina.core.StandardPipeline.invoke
> > (StandardPipeline.java:558)
> > at
> > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067)
> > at
> > org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:249)
> > at
> >
> com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter
> > (DefaultProcessorTask.java:618)
> > at
> > com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(
> DefaultProcessorTask.java:549)
> > at
> > com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process
> > (DefaultProcessorTask.java:790)
> > at
> >
> com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask
> (DefaultReadTask.java:326)
> > at
> > com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask
> > (DefaultReadTask.java:248)
> > at
> > com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(
> DefaultReadTask.java:199)
> > at
> > com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(
> PortUnificationPipeline.java
> > :328)
> > at
> > com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
> > at
> > com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(
> SSLWorkerThread.java:93)
> >
> > I thought what I was doing was right.
> >
> > The managed objects are perfectly created in the AS.
> > Furthermore, I had initially declared initialDestination as private
> > Destination initialDestination (w/ the resource injection annotation of
> > course), but when I try to deploy the bean, the AS complains:
> >
> > : UnExpected error occured while creating ejb container
> > javax.naming.InvalidNameException: JMS Destination Reference Type
> > Mismatch : `com.localmatters.SampleWSBean/initialDestination` does not
> > refer to a destination of type `javax.jms.Destination`
> > at
> > com.sun.enterprise.naming.NamingManagerImpl.bindObjects(
> NamingManagerImpl.java:404)
> > at
> > com.sun.ejb.containers.BaseContainer.setupEnvironment(BaseContainer.java
> :2705)
> > at com.sun.ejb.containers.BaseContainer
> > .<init>(BaseContainer.java:632)
> > at
> > com.sun.ejb.containers.StatelessSessionContainer.<init>(
> StatelessSessionContainer.java:160)
> > at com.sun.ejb.containers.ContainerFactoryImpl.createContainer
> > (ContainerFactoryImpl.java:255)
> > at
> > com.sun.enterprise.server.AbstractLoader.loadEjbs(AbstractLoader.java
> :484)
> > at
> > com.sun.enterprise.server.EJBModuleLoader.load(EJBModuleLoader.java:158)
> > at
> > com.sun.enterprise.server.StandAloneEJBModulesManager.moduleDeployed(
> StandAloneEJBModulesManager.java:219)
> > at
> > com.sun.enterprise.server.StandAloneEJBModulesManager.moduleDeployed(
> StandAloneEJBModulesManager.java
> > :174)
> > at
> > com.sun.enterprise.server.StandAloneEJBModulesManager.moduleDeployed(
> StandAloneEJBModulesManager.java:406)
> > at
> > com.sun.enterprise.server.StandAloneEJBModulesManager.moduleEnabled(
> StandAloneEJBModulesManager.java
> > :500)
> > at
> >
> com.sun.enterprise.admin.event.AdminEventMulticaster.invokeModuleDeployEventListener
> (AdminEventMulticaster.java:957)
> > at
> >
> com.sun.enterprise.admin.event.AdminEventMulticaster.handleModuleDeployEvent
> > (AdminEventMulticaster.java:938)
> > at
> > com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(
> AdminEventMulticaster.java:448)
> > at
> > com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent
> > (AdminEventMulticaster.java:160)
> > at
> >
> com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.sendEnableConfigChangeEventExplicitly
> (ApplicationsConfigMBean.java:1824)
> > at
> > com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.enable
> > (ApplicationsConfigMBean.java:1892)
> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > at
> > sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:39)
> > at sun.reflect.DelegatingMethodAccessorImpl.invoke
> > (DelegatingMethodAccessorImpl.java:25)
> > at java.lang.reflect.Method.invoke(Method.java:585)
> > at
> > com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(
> MBeanHelper.java:353)
> > at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean
> > (MBeanHelper.java:336)
> > at
> > com.sun.enterprise.admin.config.BaseConfigMBean.invoke(
> BaseConfigMBean.java:448)
> > at
> > com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(
> DynamicMetaDataImpl.java:213)
> > at
> > com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:220)
> > at
> > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(
> DefaultMBeanServerInterceptor.java:815)
> > at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke
> > (JmxMBeanServer.java:784)
> > at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source)
> > at
> > sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:25)
> > at java.lang.reflect.Method.invoke (Method.java:585)
> > at
> > com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java
> :77)
> > at $Proxy1.invoke(Unknown Source)
> > at
> > com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke
> > (SunoneInterceptor.java:297)
> > at
> > com.sun.enterprise.admin.jmx.remote.server.callers.InvokeCaller.call(
> InvokeCaller.java:56)
> > at
> >
> com.sun.enterprise.admin.jmx.remote.server.MBeanServerRequestHandler.handle
> > (MBeanServerRequestHandler.java:142)
> > at
> >
> com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.processRequest
> (RemoteJmxConnectorServlet.java:109)
> > at
> >
> com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.doPost
> > (RemoteJmxConnectorServlet.java:180)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> > at
> > org.apache.catalina.core.ApplicationFilterChain.servletService
> > (ApplicationFilterChain.java:398)
> > at
> > org.apache.catalina.core.StandardWrapperValve.invoke(
> StandardWrapperValve.java:277)
> > at
> > org.apache.catalina.core.StandardContextValve.invokeInternal(
> StandardContextValve.java
> > :255)
> > at
> > org.apache.catalina.core.StandardContextValve.invoke(
> StandardContextValve.java:188)
> > at
> > org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java
> :611)
> > at org.apache.catalina.core.StandardPipeline.doInvoke
> > (StandardPipeline.java:564)
> > at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java
> :81)
> > at
> > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
> :207)
> > at org.apache.catalina.core.StandardPipeline.doInvoke
> > (StandardPipeline.java:611)
> > at
> > org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java
> :564)
> > at
> > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java
> :558)
> > at
> > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067)
> > at
> > org.apache.catalina.core.StandardEngineValve.invoke(
> StandardEngineValve.java:137)
> > at org.apache.catalina.core.StandardPipeline.doInvoke
> > (StandardPipeline.java:611)
> > at
> > org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java
> :564)
> > at
> > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java
> :558)
> > at
> > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067)
> > at
> > org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:249)
> > at
> >
> com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter
> > (DefaultProcessorTask.java:618)
> > at
> > com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(
> DefaultProcessorTask.java:549)
> > at
> > com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process
> > (DefaultProcessorTask.java:790)
> > at
> >
> com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask
> (DefaultReadTask.java:326)
> > at
> > com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask
> > (DefaultReadTask.java:248)
> > at
> > com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(
> DefaultReadTask.java:199)
> > at
> > com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
> > at
> > com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(
> WorkerThreadImpl.java:103)
> >
> >
> > Could someone give some pointers?
> > thanks,
> > Daniel
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>
>