[jboss-svn-commits] JBL Code SVN: r29328 - labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/webservice.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Sep 14 06:34:22 EDT 2009
Author: kevin.conner at jboss.com
Date: 2009-09-14 06:34:21 -0400 (Mon, 14 Sep 2009)
New Revision: 29328
Modified:
labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/webservice/BaseWebService.java
Log:
Reuse soap message factory: JBESB-2809
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/webservice/BaseWebService.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/webservice/BaseWebService.java 2009-09-14 10:22:22 UTC (rev 29327)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/webservice/BaseWebService.java 2009-09-14 10:34:21 UTC (rev 29328)
@@ -73,6 +73,7 @@
private static final boolean RETURN_STACK_TRACES ;
private static final Logger LOGGER = Logger.getLogger(BaseWebService.class);
+ private static final javax.xml.soap.MessageFactory SOAP_MESSAGE_FACTORY ;
private static final AddressingBuilder ADDRESSING_BUILDER = AddressingBuilder.getAddressingBuilder() ;
private static final String ADDRESSING_NAMESPACE = ADDRESSING_BUILDER.getNamespaceURI() ;
@@ -94,6 +95,11 @@
public SOAPMessage invoke(final SOAPMessage request)
{
+ if (SOAP_MESSAGE_FACTORY == null)
+ {
+ throw new WebServiceException("Failed to instantiate SOAP Message Factory") ;
+ }
+
final SOAPAddressingProperties soapIncomingProps = AddressingContext.getAddressingProperties() ;
final Message esbReq = MessageFactory.getInstance().getMessage() ;
@@ -146,7 +152,7 @@
final Document respDoc = YADOMUtil.parseStream(new ByteArrayInputStream(soapRes.getBytes()),
false, false, true);
- final SOAPMessage response = javax.xml.soap.MessageFactory.newInstance().createMessage();
+ final SOAPMessage response = SOAP_MESSAGE_FACTORY.createMessage();
response.getSOAPBody().addDocument(respDoc) ;
if (soapIncomingProps == null)
{
@@ -167,7 +173,7 @@
{
AddressingContext.setAddressingProperties(null) ;
// We should be able to return null here but this causes JBossWS to NPE.
- return javax.xml.soap.MessageFactory.newInstance().createMessage();
+ return SOAP_MESSAGE_FACTORY.createMessage();
}
}
catch (final WebServiceException wse)
@@ -192,7 +198,7 @@
if (faultCode != null)
{
- faultMsg = javax.xml.soap.MessageFactory.newInstance().createMessage() ;
+ faultMsg = SOAP_MESSAGE_FACTORY.createMessage() ;
final SOAPFault fault = faultMsg.getSOAPBody().addFault(faultCode, faultDescription) ;
if (faultDetail != null)
{
@@ -233,7 +239,7 @@
private SOAPMessage generateFault(final Throwable th)
throws SOAPException
{
- final SOAPMessage faultMsg = javax.xml.soap.MessageFactory.newInstance().createMessage() ;
+ final SOAPMessage faultMsg = SOAP_MESSAGE_FACTORY.createMessage() ;
if (RETURN_STACK_TRACES)
{
final StringWriter sw = new StringWriter() ;
@@ -298,5 +304,16 @@
final PropertyManager propertyManager = ModulePropertyManager.getPropertyManager(ModulePropertyManager.TRANSPORTS_MODULE) ;
final String returnStackTraces = propertyManager.getProperty(Environment.WS_RETURN_STACK_TRACE);
RETURN_STACK_TRACES = Boolean.parseBoolean(returnStackTraces) ;
+
+ javax.xml.soap.MessageFactory soapMessageFactory = null ;
+ try
+ {
+ soapMessageFactory = javax.xml.soap.MessageFactory.newInstance() ;
+ }
+ catch (final SOAPException soape)
+ {
+ LOGGER.error("Could not instantiate SOAP Message Factory", soape) ;
+ }
+ SOAP_MESSAGE_FACTORY = soapMessageFactory ;
}
}
More information about the jboss-svn-commits
mailing list