[JBoss Messaging] - Automatic healing of JMS client
by Saurav Kumar
Saurav Kumar [http://community.jboss.org/people/sauravkr] created the discussion
"Automatic healing of JMS client"
To view the discussion, visit: http://community.jboss.org/message/564473#564473
--------------------------------------------------------------
Hello All,
I am using jboss messaging for events. I am RMI based rich client application and has implemented
MessageListener to listen events. Some times due to network problem or sometimes due to the server reset of system time JMS event subscription is lost. Although RMI connection is still alive. Unlike http client we are keeping connection forever (24x7). I want to implement a watch dog kind of mechenism by which i will resubscribe to messaging after loosing connection.
There 2 problems.
1. There is no callback for exceptions if this breaks. although i have implemented ExceptionListener.
2. I am not aware of any configuration which ensure autosubriction if it breaks.
Reproduction scheme. Create a simple ear to conteneously publish events on Topic. On RMI client simply implement MessageListener and ExceptionListner. set system time to 1 hr back.
Regards,
Saurav
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/564473#564473]
Start a new discussion in JBoss Messaging at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
14 years, 3 months
[JBoss Web Services] - Invoking a web service from JBoss AS as a client
by Peter Schilling
Peter Schilling [http://community.jboss.org/people/pschor] created the discussion
"Invoking a web service from JBoss AS as a client"
To view the discussion, visit: http://community.jboss.org/message/564010#564010
--------------------------------------------------------------
I've been trying to figure this out for several days, any help will be appreciated.
I'm trying to invoke a web service from a java class deployed in JBoss 5.1.0.GA running on JDK1.6.0. I get the exception below. The same method called from a plain Java object and invoked from a command line (using JDK's WS jars instead of JBoss') works perfectly.
I copied the jboss-native-* classes to the endorsed directory (initally to resolve the SetProperty problem), but is there anything else that needs to be considered to invoke a service from JBoss as a client?
Three things that are different from the case when the method is invoked successfully from the command line:
** In the request STDOUT the XML version header was removed (probably by SaveMessage).
** In the request STDOUT quotes were converted to apostrophes.
** Even thought the content type is set as text/xml, the error says content type is text/html
Thanks for your help
Peter
The method and the output/error:
try {
// Create the SOAP connection
SOAPConnectionFactory soapConnFactory = SOAPConnectionFactory.newInstance();
SOAPConnection connection = soapConnFactory.createConnection();
String soapText =
"<?xml version=\"1.0\"?>" +
"<SOAP-ENV:Envelope xmlns:SOAP-ENV=\" http://schemas.xmlsoap.org/soap/envelope/ http://schemas.xmlsoap.org/soap/envelope/\"" +
" SOAP-ENV:encodingStyle=\" http://schemas.xmlsoap.org/soap/encoding/ http://schemas.xmlsoap.org/soap/encoding/\">" +
"<SOAP-ENV:Header/>" +
"<SOAP-ENV:Body>" +
"<Discover xmlns=\"urn:schemas-microsoft-com:xml-analysis\">" +
"<RequestType>DISCOVER_DATASOURCES</RequestType>" +
"<Restrictions><RestrictionList/></Restrictions>" +
"<Properties><PropertyList><Format>Tabular</Format></PropertyList></Properties>" +
"</Discover>" +
"</SOAP-ENV:Body>" +
"</SOAP-ENV:Envelope>";
// Create SoapMessage
MessageFactory msgFactory = MessageFactory.newInstance();
SOAPMessage message = msgFactory.createMessage();
// Load the SOAP text into a stream source
ByteArrayInputStream stream = new ByteArrayInputStream(soapText.getBytes());
StreamSource source = new StreamSource(stream);
// Set contents of message
message.getSOAPPart().setContent(source);
MimeHeaders mh = message.getMimeHeaders();
mh.setHeader("Content-Type", "text/xml");
mh.setHeader("SOAPAction", "\"urn:schemas-microsoft-com:xml-analysis:Discover\"");
//Save the message
message.saveChanges();
//Check the input
System.out.println("HEADERS:\n" );
Iterator<MimeHeader> i = message.getMimeHeaders().getAllHeaders();
while ( i.hasNext() ) {
MimeHeader header = i.next();
String name = header.getName();
String value = header.getValue();
System.out.println ( name + ": " + value);
}
System.out.println("END HEADERS:\n" );
System.out.println("REQUEST:\n");
message.writeTo(System.out);
System.out.println("END REQUEST:\n");
//Send the message and get a reply
//Set the destination
String destination = " http://localhost:7070/mondrian/xmla http://localhost:7070/mondrian/xmla";
//Send the message
SOAPMessage reply = connection.call(message, destination);
//Check the reply
System.out.println("\nREPLY:\n");
reply.writeTo(System.out);
System.out.println("\nEND REPLY:\n");
// Close the SOAP connection
connection.close();
} catch(Exception e) {
System.out.println(e.getMessage());
}
}
20:50:45,855 INFO [STDOUT] HEADERS:
20:50:45,855 INFO [STDOUT] Content-Type: text/xml; charset=UTF-8
20:50:45,855 INFO [STDOUT] SOAPAction: "urn:schemas-microsoft-com:xml-analysis:Discover"
20:50:45,855 INFO [STDOUT] END HEADERS:
20:50:45,855 INFO [STDOUT] REQUEST:
20:50:45,855 INFO [STDOUT] <SOAP-ENV:Envelope xmlns:SOAP-ENV=' http://schemas.xmlsoap.org/soap/envelope/ http://schemas.xmlsoap.org/soap/envelope/' SOAP-ENV:encodingStyle=' http://schemas.xmlsoap.org/soap/encoding/ http://schemas.xmlsoap.org/soap/encoding/'><SOAP-ENV:Header></SOAP-ENV:Header><SOAP-ENV:Body>
<Discover xmlns='urn:schemas-microsoft-com:xml-analysis'><RequestType>DISCOVER_DATASOURCES
20:50:45,855 INFO [STDOUT] </RequestType>
20:50:45,855 INFO [STDOUT] <Restrictions><RestrictionList/>
20:50:45,855 INFO [STDOUT] </Restrictions>
20:50:45,855 INFO [STDOUT] <Properties><PropertyList><Format>Tabular
20:50:45,855 INFO [STDOUT] </Format>
20:50:45,855 INFO [STDOUT] </PropertyList>
20:50:45,855 INFO [STDOUT] </Properties>
20:50:45,855 INFO [STDOUT] </Discover>
20:50:45,855 INFO [STDOUT] </SOAP-ENV:Body></SOAP-ENV:Envelope>
20:50:45,855 INFO [STDOUT] END REQUEST:
20:50:59,865 ERROR [SOAPMessageUnMarshallerHTTP] Cannot unmarshall SOAPMessage
javax.xml.soap.SOAPException: Unsupported content type: text/html; charset=utf-8
at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:272)
at org.jboss.ws.core.soap.SOAPMessageUnMarshallerHTTP.read(SOAPMessageUnMarshallerHTTP.java:82)
at org.jboss.remoting.transport.http.HTTPClientInvoker.readResponse(HTTPClientInvoker.java:570)
at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:369)
at org.jboss.remoting.transport.http.HTTPClientInvoker.makeInvocation(HTTPClientInvoker.java:231)
at org.jboss.remoting.transport.http.HTTPClientInvoker.transport(HTTPClientInvoker.java:161)
at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:165)
at org.jboss.remoting.Client.invoke(Client.java:1724)
at org.jboss.remoting.Client.invoke(Client.java:629)
at org.jboss.ws.core.client.HTTPRemotingConnection.invoke(HTTPRemotingConnection.java:243)
at org.jboss.ws.core.client.SOAPProtocolConnectionHTTP.invoke(SOAPProtocolConnectionHTTP.java:71)
at org.jboss.ws.core.soap.SOAPConnectionImpl.callInternal(SOAPConnectionImpl.java:143)
at org.jboss.ws.core.soap.SOAPConnectionImpl.call(SOAPConnectionImpl.java:64)
at bizlayer.mdxquery.XmlaQuery.invokeXmlaService2(XmlaQuery.java:230)
at org.apache.jsp.web.admin.testsoaclient_jsp._jspService(testsoaclient_jsp.java:61)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
20:50:59,881 INFO [STDOUT] java.io.IOException: Could not transmit message
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/564010#564010]
Start a new discussion in JBoss Web Services at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
14 years, 3 months