[jboss-user] [JBoss.NET] - Re: JBOSS 4.0.5 with Axis 2
Hi, it is very easy since AXIS2.war can be deployed in the embedded Tomcat of JBoss as it would be a standalone Tomcat. Of course I hope you do not expect from this AXIS2 to work as e.g. JAX-WS or JAX-RPC implementation for EJBs... it won't work, but work as just a simple AXIS2 in a Tomcat and nothing more View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4035265#4035265 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4035265 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - BUG: MTOM with JBossWS 1.2.0SP1 server and Axis2 client
Hi, I have a possible bug report: JBoss AS 4.0.5 JBossWS 1.2.0 SP1 EJB3 Axis2 client with MTOM enabled I exposed an EJB3 exactly as it is described in JBossWS Guide as WS (with MTOM enabled) Endpoint: | @Remote | @WebService(targetNamespace = http://org.jboss.ws/xop/doclit;) | @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, parameterStyle = SOAPBinding.ParameterStyle.BARE) | @BindingType(value=http://schemas.xmlsoap.org/wsdl/soap/http?mtom=true;) | public interface ETI_Receiver { | | public void downloadRelationships(DataHandler attachedFile); | | } | Bean | @Stateless | @WebService(endpointInterface=ETI_Receiver) | public class ETI_ReceiverBean implements ETI_Receiver{ | | | public void downloadRelationships(DataHandler attachedFile) { | | } | | | } | Client code (with Axis2 stub generated from the WSDL published during deployment of EJB3 by JBossWS) | | ETI_ReceiverBeanServiceStub emstub = new ETI_ReceiverBeanServiceStub(); | Options options = new Options(); | | options.setProperty(Constants.Configuration.ENABLE_MTOM, Constants.VALUE_TRUE); | //options.setProperty(Constants.Configuration.CACHE_ATTACHMENTS, Constants.VALUE_TRUE); | //options.setProperty(Constants.Configuration.ATTACHMENT_TEMP_DIR, new File(c:\\)); | //options.setProperty(Constants.Configuration.FILE_SIZE_THRESHOLD,10); | //options.setProperty(Constants.Configuration.ENABLE_SWA, Constants.VALUE_TRUE); | options.setTo(new EndpointReference(uri)); | emstub._getServiceClient().setOptions(options); | | ws.jboss.org.xop.doclit.DownloadRelationships drs = new ws.jboss.org.xop.doclit.DownloadRelationships(); | | DataSource ds; | | ds = new FileDataSource(d:\\x.zip); | DataHandler dataHandler = new DataHandler(ds); | | drs.setDownloadRelationships(dataHandler); | | try { | emstub.downloadRelationships(drs); | | } catch (RemoteException e) { | // TODO Auto-generated catch block | e.printStackTrace(); | } | | Without enabling MTOM at Axis2 side everything is perfect, the attachment is sent, but after enabling MTOM (see the code above) JbossWS drops an exception with message multipart/related stream invalid, no root part was found | 2007-03-27 22:45:13,281 INFO [org.jboss.system.server.Server] JBoss (MX MicroKernel) [4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)] Started in 45s:938ms | 2007-03-27 22:47:35,796 DEBUG [org.jboss.ws.core.server.AbstractServiceEndpointServlet] doPost: /ETI_Framework/ETI_ReceiverBean | 2007-03-27 22:47:35,796 DEBUG [org.jboss.ws.core.soap.MessageContextAssociation] pushMessageContext: [EMAIL PROTECTED] (Thread http-0.0.0.0-8080-1) | 2007-03-27 22:47:35,812 DEBUG [org.jboss.ws.core.server.ServiceEndpoint] BEGIN handleRequest: jboss.ws:context=ETI_Framework,endpoint=ETI_ReceiverBean | 2007-03-27 22:47:35,843 DEBUG [org.jboss.ws.core.soap.MessageFactoryImpl] createMessage: [contentType=multipart/related; | boundary=MIMEBoundaryurn_uuid_38281D50CC3CDBE79011750284556091; | type=application/xop+xml; | start=0.urn:uuid:[EMAIL PROTECTED]; | start-info=text/xml; charset=UTF-8] | 2007-03-27 22:47:35,859 DEBUG [org.jboss.ws.metadata.umdm.EndpointMetaData] Configure SOAPBinding | 2007-03-27 22:47:35,859 ERROR [org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS] SOAP request exception | java.lang.IllegalArgumentException: multipart/related stream invalid, no root part was found | at org.jboss.ws.core.soap.attachment.MultipartRelatedDecoder.decodeMultipartRelatedMessage(MultipartRelatedDecoder.java:156) | at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:211) | at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:171) | at org.jboss.ws.core.server.ServiceEndpoint.handleRequest(ServiceEndpoint.java:185) | at org.jboss.ws.core.server.ServiceEndpointManager.processSOAPRequest(ServiceEndpointManager.java:440) | at org.jboss.ws.core.server.AbstractServiceEndpointServlet.doPost(AbstractServiceEndpointServlet.java:114) | at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) | at org.jboss.ws.core.server.AbstractServiceEndpointServlet.service(AbstractServiceEndpointServlet.java:75) | at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) | at
[jboss-user] [JBossWS] - Re: BUG: MTOM with JBossWS 1.2.0SP1 server and Axis2 client
I tried with SoapUI client, In this case JBossWS does not drop an exception, but the transmitted file has filesize 0 if I enable MTOM enabled in SoapUI request View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4032225#4032225 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4032225 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: BUG: MTOM with JBossWS 1.2.0SP1 server and Axis2 client
Using SoapUI as client I collected the following trace at JBossWS side: | 2007-03-28 00:17:59,296 DEBUG [org.jboss.ws.core.server.ServiceEndpoint] BEGIN handleRequest: jboss.ws:context=ETI-ETI_Framework,endpoint=ETI_ReceiverBean | 2007-03-28 00:17:59,296 DEBUG [org.jboss.ws.core.soap.MessageFactoryImpl] createMessage: [contentType=multipart/related; type=application/xop+xml; | start=[EMAIL PROTECTED]; startinfo=text/xml; action=\\; | boundary==_Part_16_1798874.1175033879281] | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.soap.attachment.SwapableMemoryDataSource] Using memory buffer, size = 707 | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.soap.attachment.SwapableMemoryDataSource] Using memory buffer, size = 81 | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerDelegateJAXWS] callRequestHandlerChain: PRE | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] initHandlerChain: PRE | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] Clear handler map: {} | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] initHandlerChain: ENDPOINT | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] Clear handler map: {} | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] initHandlerChain: POST | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] Clear handler map: {} | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] getHandlerChain: [type=PRE,info=[service={http://siemens.com/ws}ETI_ReceiverBeanService,port={http://siemens.com/ws}EMServicesPort,binding=http://schemas.xmlsoap.org/wsdl/soap/http?mtom=true]] | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerChainExecutor] Create a handler executor: [] | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.soap.SOAPMessageDispatcher] getDispatchDestination: {http://siemens.com/ws}downloadRelationships | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.binding.SOAP11BindingJAXWS] unbindRequestMessage: {http://siemens.com/ws}downloadRelationships | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.EndpointInvocation] setRequestParamValue: [name={http://siemens.com/ws/types}downloadRelationships,value=org.jboss.ws.core.soap.SOAPBodyElementDoc] | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerDelegateJAXWS] callRequestHandlerChain: ENDPOINT | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] initHandlerChain: PRE | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] Clear handler map: {} | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] initHandlerChain: ENDPOINT | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] Clear handler map: {} | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] initHandlerChain: POST | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] Clear handler map: {} | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] getHandlerChain: [type=ENDPOINT,info=[service={http://siemens.com/ws}ETI_ReceiverBeanService,port={http://siemens.com/ws}EMServicesPort,binding=http://schemas.xmlsoap.org/wsdl/soap/http?mtom=true]] | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerChainExecutor] Create a handler executor: [] | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerDelegateJAXWS] callRequestHandlerChain: POST | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] initHandlerChain: PRE | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] Clear handler map: {} | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] initHandlerChain: ENDPOINT | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] Clear handler map: {} | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] initHandlerChain: POST | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] Clear handler map: {} | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] getHandlerChain: [type=POST,info=[service={http://siemens.com/ws}ETI_ReceiverBeanService,port={http://siemens.com/ws}EMServicesPort,binding=http://schemas.xmlsoap.org/wsdl/soap/http?mtom=true]] | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerChainExecutor] Create a handler executor: [] | 2007-03-28 00:17:59,312 DEBUG [org.jboss.ws.integration.jboss42.ServiceEndpointInvokerEJB3] invokeServiceEndpoint:
[jboss-user] [JBossWS] - Re: @WebServiceRef jbossws 1.2.0.GA
Hi, You proposed to use the JAX-WS API to create a service, but do you know how to specify a relative path to e.g. META-INF/wsdl/x.wsdl ? I tried the file:/./META-INF/wsdl/x.wsdl file:/META-INF/wsdl/x.wsdl file:./META-INF/wsdl/x.wsdl file:META-INF/wsdl/x.wsdl file://META-INF/wsdl/x.wsdl file:///META-INF/wsdl/x.wsdl but no one is working... Could I avoid to use absolute path? Thanks a lot for your help, Bye, Janos View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4031492#4031492 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4031492 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - MTOM/SwA enabled file transfer
Hi, My configuration is: JBossAS 4.0.5 JBossWS 1.2.0GA EJB3 shipped with JBossAS 4.0.5 I've tried to publish an EJB3 WS (using contract-first model) with MTOM enabled file transfer as it is proposed by the JBossWS guideline. I compiled the WSDL with wsconsume as appropriate and added the following annotations to the EJB3 POJO. | @Stateless | @Remote(ETI_Receiver.class) | @WebService(endpointInterface=generated.wsdl.EMServicesPortType | , wsdlLocation=META-INF/wsdl/Services.wsdl | , targetNamespace=http://my.com/ws; | , portName = EMServicesPort) | @BindingType(value=javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_MTOM_BINDING) | public class ETI_ReceiverBean extends ETI_CommonReceiverServices implements ETI_Receiver { | The endpoint works well, till I try to send send an attachment with MTOM/SwA enabled. The normal attachments are works fine, but if I enable MTOM or simple SwA at client side (Axis2 code, see below) | EMServicesStub emstub = new EMServicesStub(uri); | Options options = new Options(); | options.setProperty(Constants.Configuration.ENABLE_MTOM, Constants.VALUE_TRUE); | //options.setProperty(Constants.Configuration.ENABLE_SWA, Constants.VALUE_TRUE); | emstub._getServiceClient().setOptions(options); | it drops a SOAPRequest exception | 2007-03-26 20:24:06,062 INFO [org.jboss.system.server.Server] JBoss (MX MicroKernel) [4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)] Started in 1m:16s:344ms | 2007-03-26 20:25:10,234 DEBUG [org.jboss.ws.core.server.AbstractServiceEndpointServlet] doPost: /ETI-ETI_Framework/ETI_ReceiverBean | 2007-03-26 20:25:10,250 DEBUG [org.jboss.ws.core.soap.MessageContextAssociation] pushMessageContext: [EMAIL PROTECTED] (Thread http-0.0.0.0-8080-1) | 2007-03-26 20:25:10,250 DEBUG [org.jboss.ws.core.server.ServiceEndpoint] BEGIN handleRequest: jboss.ws:context=ETI-ETI_Framework,endpoint=ETI_ReceiverBean | 2007-03-26 20:25:10,312 DEBUG [org.jboss.ws.core.soap.MessageFactoryImpl] createMessage: [contentType=multipart/related; | boundary=MIMEBoundaryurn_uuid_6BC0C2D8E13C69924211749335100931; | type=application/xop+xml; | start=0.urn:uuid:[EMAIL PROTECTED]; | start-info=text/xml; charset=UTF-8] | 2007-03-26 20:25:10,343 DEBUG [org.jboss.ws.core.soap.attachment.SwapableMemoryDataSource] Using memory buffer, size = 8044 | 2007-03-26 20:25:10,750 DEBUG [org.jboss.ws.metadata.umdm.EndpointMetaData] Configure SOAPBinding | 2007-03-26 20:25:10,750 ERROR [org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS] SOAP request exception | java.lang.IllegalArgumentException: multipart/related stream invalid, no root part was found | at org.jboss.ws.core.soap.attachment.MultipartRelatedDecoder.decodeMultipartRelatedMessage(MultipartRelatedDecoder.java:156) | at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:211) | at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:171) | at org.jboss.ws.core.server.ServiceEndpoint.handleRequest(ServiceEndpoint.java:185) | at org.jboss.ws.core.server.ServiceEndpointManager.processSOAPRequest(ServiceEndpointManager.java:440) | at org.jboss.ws.core.server.AbstractServiceEndpointServlet.doPost(AbstractServiceEndpointServlet.java:114) | at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) | at org.jboss.ws.core.server.AbstractServiceEndpointServlet.service(AbstractServiceEndpointServlet.java:75) | at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) | at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) | at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) | at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) | at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156) | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) | at
[jboss-user] [JBossWS] - EJB3 endpoint with predefined WSDL contract
Hi, Dev. environment: JBoss AS 4.0.4 GA with the bundled JBossWS (1.0.0) JRE 1.5.0_9 Windows XP SP2 We use EJB3. Our problem is would be the following: We have a predefined WSDL contract (for test purposes we used a redically simplified one which contains only one operation called abort) which should be implemented by us. WSDL for test | ?xml version=1.0 encoding=UTF-8? | !-- | EMInterface | EMServies.wsdl, WSDL 1.1, document/literal wrapped style | -- | wsdl:definitions xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/; xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/; xmlns:xs=http://www.w3.org/2001/XMLSchema; xmlns:ns=http://siemens.com/ws/request/beans; xmlns:ws=http://siemens.com/ws/request/wsdl; xmlns:tns=http://siemens.com/ws/request/beans; targetNamespace=http://siemens.com/ws/request/beans; name=EMServices | wsdl:types | xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema; elementFormDefault=qualified xmlns:tns=http://siemens.com/ws/request/beans; targetNamespace=http://siemens.com/ws/request/beans; | xs:element name=abortInput | xs:complexType | xs:sequence | xs:element name=x type=xs:int/ | /xs:sequence | /xs:complexType | /xs:element | xs:element name=abortResponse | xs:complexType | xs:sequence | xs:element name=y type=xs:float/ | /xs:sequence | /xs:complexType | /xs:element | /xs:schema | /wsdl:types | wsdl:message name=abortInMessage | wsdl:part name=abortInputPart element=tns:abortInput/ | /wsdl:message | wsdl:message name=abortOutMessage | wsdl:part name=abortResponsePart element=tns:abortResponse/ | /wsdl:message | wsdl:portType name=EMServices | wsdl:operation name=abort | wsdl:input message=ns:abortInMessage/ | wsdl:output message=ns:abortOutMessage/ | /wsdl:operation | /wsdl:portType | wsdl:binding name=EMServicesSOAP type=ns:EMServices | soap:binding style=document transport=http://schemas.xmlsoap.org/soap/http/ | wsdl:operation name=abort | wsdl:input | soap:body use=literal/ | /wsdl:input | wsdl:output | soap:body use=literal/ | /wsdl:output | /wsdl:operation | /wsdl:binding | wsdl:service name=EMServices | wsdl:port name=ReceiverBeanPort binding=ns:EMServicesSOAP | soap:address location=http://localhost:8081/axis2/services/EMServices/ | /wsdl:port | /wsdl:service | /wsdl:definitions | | We've tried several approaches but no one is working: 1. a, we compiled the WSDL file (see above) with wstools.bat it made some minor syntactic errors in the generated .java files (e.g. class names used lowercase (e.g. abortType) instead of the correct uppercase AbortType, [Byte; instead of Byte[]) but I corrected it manually b, we specified that we'd like to use a predefined WSDL instead of autogenerated one using JSR181 annotations | @WebService(serviceName=EMServices, targetNamespace=http://siemens.com/ws/request/beans,wsdlLocation=META-INF/wsdl/EMServices.wsdl;) | c, the deployment was successfull, the original WSDL was published d, but when we tried to invoke the operation it dropped an exception (the relevant part is emphasized) LOG from the deployment to the exception 2006-11-30 09:38:23,097 DEBUG [org.jboss.deployment.MainDeployer] Starting deployment of package: file:/D:/jboss-4.0.4.GA/server/default/deploy/eti_reloaded_rt1.jar | 2006-11-30 09:38:23,097 DEBUG [org.jboss.deployment.MainDeployer] Starting deployment (init step) of package at: file:/D:/jboss-4.0.4.GA/server/default/deploy/eti_reloaded_rt1.jar | 2006-11-30 09:38:23,113 DEBUG [org.jboss.deployment.MainDeployer] Copying file:/D:/jboss-4.0.4.GA/server/default/deploy/eti_reloaded_rt1.jar - D:\jboss-4.0.4.GA\server\default\tmp\deploy\tmp61680eti_reloaded_rt1.jar | 2006-11-30 09:38:23,128 DEBUG [org.jboss.deployment.MainDeployer] using deployer MBeanProxyExt[jboss.ejb3:service=EJB3Deployer] | 2006-11-30 09:38:23,128 DEBUG [org.jboss.ejb3.EJB3Deployer] looking for nested deployments in : file:/D:/jboss-4.0.4.GA/server/default/deploy/eti_reloaded_rt1.jar | 2006-11-30 09:38:23,128 DEBUG [org.jboss.deployment.DeploymentInfo]
[jboss-user] [JBossWS] - Re: EJB3 endpoint with predefined WSDL contract
Hi, Thanks a lot, but Could you post me a working example? Thanks a lot in advance, Bye, Janos View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=3990113#3990113 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=3990113 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [Messaging, JMS JBossMQ] - Re: Topic/QueueRequestor does not respond
I guess everybody knows the answer It is why nobody replied... but for noobs like me I'd reveal the answer: connection.start(); Bye, Janos View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=3977447#3977447 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=3977447 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [Messaging, JMS JBossMQ] - Topic/QueueRequestor does not respond
Hi all, I'm not completely sure that it is new problem, but I've not found the solution yet in JBoss forum... I'm using a stateless session bean which uses TopicRequestor.request to publish a message into a Topic and wait for the response. The subscriber of the target topic is a simple MDB. This MDB receives the message and sends the answer back to the TemporaryTopic specified in the JMSReplyTo field correctly without throwing any exception, but the TopicRequestor.request hangs and does not receive any reply. I reimplemented the TopicRequestor because I would need timeout feature in any case, but it has also the same problem. Is the temporaryQueue/Topic working in JBoss at all? JBoss: 4.0.4 GA Op. : Windows XP My caller code which using TopicRequestor (HANGS): //The STopicRequestor is my implementation, but the behaviour (except timeout handling of course) and error symptoms are the same //Create a requestor using the session | STopicRequestor requestor = new STopicRequestor(session,triggerTopic); | | //creating a trigger message | TextMessage trigger = session.createTextMessage(); | trigger.setText(Trigger message SYNC); | | //sending message and waiting for the reply | System.out.print(Sending sync trigger to the topic and waiting the response...); | | TextMessage replyMessage = (TextMessage) requestor.request(trigger,1); | System.out.print(Sending sync trigger to the topic and waiting the response...done); | requestor.close(); | The STopicRequestor implementation (WORKING): public class STopicRequestor { | | private final TopicSession targetSession; | | private final TemporaryTopic callbackTopic; | | private final TopicPublisher publisher; | private final TopicSubscriber subscriber; | | /** | * | * @param targetSession TopicSession (initialized) to be used | * @param targetTopic Topic (intitialized) to be used | * @throws JMSException Thrown in case of internal JMS error | */ | public STopicRequestor(TopicSession targetSession, Topic targetTopic) throws JMSException | { | this.targetSession = targetSession; | | callbackTopic = targetSession.createTemporaryTopic(); | publisher = targetSession.createPublisher(targetTopic); | subscriber = targetSession.createSubscriber(callbackTopic); | } | | | /** | * Blocks the caller till the reply received or timeout expires | * @param messageToBeSent The message to be sent to the Topic | * @param timeoutMilliseconds If set to 0 no timeout is used | * @return The reply message, null is returned if timeout expired | * @throws JMSException Thrown in case of internal JMS error | */ | public Message request(Message messageToBeSent, long timeoutMilliseconds) throws JMSException | { | Message replyMessage = null; | | messageToBeSent.setJMSReplyTo(callbackTopic); | | publisher.publish(messageToBeSent); | | replyMessage = subscriber.receive(timeoutMilliseconds); | | return replyMessage; | } | | public void close() throws JMSException | { | targetSession.close(); | callbackTopic.delete(); | } | | } The MDB Code which consumes the message (WORKING) //Create a connection to JMS Provider | TopicConnection connection = factory.createTopicConnection(); | | //Create a session which is a helper class during communication | //no transaction is needed, second parameter is meaningless in case of publishing | TopicSession session = connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE); | | //Create a publisher using the session | TopicPublisher publisher = session.createPublisher(callback); | | //creating the response | TextMessage response = session.createTextMessage(); | response.setText(Synchronous response); |