I'm following this documentation for SOAP over JMS:
https://docs.jboss.org/author/display/JBWS/SOAP+over+JMS
I'm able to get the server to work but after when I implemented the client,
I tried to run it and I have this error:
WARNING: Interceptor for
{http://soapjms.rd.nsrr.swim.faa.gov/}SoapJmsWeatherImpl#{http://soapjms.rd.nsrr.swim.faa.gov/}GetForecast
has thrown exception, unwinding now
org.apache.cxf.configuration.ConfigurationException: Insufficient
configuration for Conduit. Did you configure a <jms:conduit
name="{http://soapjms.rd.nsrr.swim.faa.gov/}SoapJmsWeatherImplPort.jms-conduit">
and set the jndiConnectionFactoryName ?
I have created a cxf.xml file that contains the jms:conduit and
jms:destination (below), and put it in the /WEB-INF/ directory of my server
.WAR file. But somehow JBoss does not read that file.
...
<jms:conduit
name="{http://soapjms.rd.nsrr.swim.faa.gov/}SoapJmsWeatherImplPort.jms-conduit">
<jms:address destinationStyle="queue"
jndiConnectionFactoryName="java:activemq/QueueConnectionFactory"
jndiDestinationName="java:activemq/queue/GetForecastRequestQueue"
jndiReplyDestinationName="java:activemq/queue/GetForecastResponseQueue">
<jms:JMSNamingProperty name="java.naming.factory.initial"
value="org.apache.activemq.jndi.ActiveMQInitialContextFactory" />
<jms:JMSNamingProperty name="java.naming.provider.url"
value="vm://localhost" />
</jms:address>
</jms:conduit>
<jms:destination
name="{http://soapjms.rd.nsrr.swim.faa.gov/}SoapJmsWeatherImplPort.jms-destination">
<jms:address destinationStyle="queue"
jndiConnectionFactoryName="java:activemq/QueueConnectionFactory"
jndiDestinationName="java:activemq/queue/GetForecastRequestQueue"
jndiReplyDestinationName="java:activemq/queue/GetForecastResponseQueue">
<jms:JMSNamingProperty name="java.naming.factory.initial"
value="org.apache.activemq.jndi.ActiveMQInitialContextFactory" />
<jms:JMSNamingProperty name="java.naming.provider.url"
value="vm://localhost" />
</jms:address>
</jms:destination>
...
Here is my client:
package gov.faa.swim.nsrr.rd.soapjms;
import java.net.URL;
import javax.xml.namespace.QName;
import org.apache.cxf.Bus;
import org.apache.cxf.BusFactory;
import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
public final class Main {
private static final QName SERVICE_NAME = new
QName("http://soapjms.rd.nsrr.swim.faa.gov/", "SoapJmsWeatherImpl");
private Main() { }
public static void main(String args[]) throws Exception {
URL wsdlURL = SoapJmsWeatherImpl.WSDL_LOCATION;
Bus bus = BusFactory.newInstance().createBus();
BusFactory.setThreadDefaultBus(bus);
try {
SoapJmsWeatherImpl service = new
SoapJmsWeatherImpl(wsdlURL, SERVICE_NAME);
System.out.println("===== Interacting with JMS endpoint
======");
SoapJmsWeatherImplPortType proxy =
(SoapJmsWeatherImplPortType) service.getSoapJmsWeatherImplPort();
System.out.println("\nInvoking getForecast...");
proxy.getForecast("Philadelphia");
}
finally {
bus.shutdown(true);
}
System.exit(0);
}
}
Could someone guide me to the right direction to get this to work? Thanks.
--
View this message in context:
http://cxf.547215.n5.nabble.com/Soap-over-Jms-Error-Insufficient-configuration-for-Conduit-tp5130316p5130316.html
Sent from the cxf-dev mailing list archive at Nabble.com.