[jboss-user] [JBoss Seam] - Conversation ID in web service response
shakenbrain
do-not-reply at jboss.com
Tue Jul 31 15:19:06 EDT 2007
I'm getting started with conversations in a JBoss Seam web service. I've got a basic web service with a method called 'start' that doesn't do anything (yet):
@Stateless
| @Name("supportCenterService")
| @WebService(name = "SupportCenter", targetNamespace = "http://blah.service", serviceName = "SupportCenterService")
| public class SupportCenter implements SupportCenterRemote {
|
| @In(create=true)
| AgentConfigurationSource agentConfiguration;
|
| @Logger
| Log log;
|
| @WebMethod
| public void start() {
| }
| }
|
I'm calling this web service from an Axis client generated from WSDL2Java:
public static void start() {
| try {
| SupportCenter supportCenter = SupportCenterClientFactory.getClient();
| supportCenter.start();
| SOAPHeaderElement[] headers = ((Stub) supportCenter).getResponseHeaders();
| System.out.println("Headers: " + headers.length);
| } catch (Exception e) {
| throw new WebServiceClientException(e);
| }
| }
The getClient method in SupportCenterClientFactory calls setMaintainSession:
public static SupportCenter getClient() {
| try {
| URL endpointAddress = new URL(AgentGlobals.getInstance().getConfig().getWebService().getPrimaryAddress());
| SupportCenterServiceLocator serviceLocator = new SupportCenterServiceLocator();
| serviceLocator.setMaintainSession(true);
| return serviceLocator.getSupportCenterPort(endpointAddress);
| } catch (ServiceException e) {
| throw new WebServiceClientException(e);
| } catch (MalformedURLException e) {
| throw new WebServiceClientException(e);
| }
| }
I have the following in META-INF/standard-jaxws-endpoint-config.xml:
<jaxws-config xmlns="urn:jboss:jaxws-config:2.0"
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| xmlns:javaee="http://java.sun.com/xml/ns/javaee"
| xsi:schemaLocation="urn:jboss:jaxws-config:2.0 jaxws-config_2_0.xsd">
| <endpoint-config>
| <config-name>Seam WebService Endpoint</config-name>
| <pre-handler-chains>
| <javaee:handler-chain>
| <javaee:protocol-bindings>##SOAP11_HTTP</javaee:protocol-bindings>
| <javaee:handler>
| <javaee:handler-name>SOAP Request Handler</javaee:handler-name>
| <javaee:handler-class>org.jboss.seam.webservice.SOAPRequestHandler</javaee:handler-class>
| </javaee:handler>
| </javaee:handler-chain>
| </pre-handler-chains>
| </endpoint-config>
| </jaxws-config>
So, going back to the client call, should I expect to see a conversation id in the response header? Right now, there are no headers defined in the response:
public static void start() {
| try {
| SupportCenter supportCenter = SupportCenterClientFactory.getClient();
| supportCenter.start();
| SOAPHeaderElement[] headers = ((Stub) supportCenter).getResponseHeaders();
| System.out.println("Headers: " + headers.length); // Result is 0
| } catch (Exception e) {
| throw new WebServiceClientException(e);
| }
| }
Am I misunderstanding something here, or am I missing something?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4069332#4069332
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4069332
More information about the jboss-user
mailing list