Hi,
  I'm new to CXF.

  I've been able to make work a webservice over jms by following this
example :

http://cwiki.apache.org/CXF20DOC/jax-ws-java-first-with-jms-transport.html

and using Tibco BusinessWorks as client for soap over jms.


In the server code part their is

Object implementor = new Hello();
 JaxWsServerFactoryBean svrFactory = new JaxWsServerFactoryBean();
 svrFactory.setServiceClass(IHello.class);
 svrFactory.setAddress("jms://"); svrFactory.setServiceBean(implementor);
 svrFactory.getInInterceptors().add(new LoggingInInterceptor());
 svrFactory.getOutInterceptors().add(new LoggingInInterceptor());
 svrFactory.create();

where you specify One interface of one class.


My problem is that the Spring Bean I intend to expose through
webservice implements multiple interfaces and I need to expose the
methods of two of them.


What is the best way to have both interface exposed via webservice ?


If I use 2 JaxWsServerFactoryBean, I guess I would have to generate
two wsdl for the same service :


    JaxWsServerFactoryBean workflowServiceServerFactory = new
JaxWsServerFactoryBean();

    workflowServiceServerFactory.setServiceClass  (WorkflowService.class);
    workflowServiceServerFactory.setAddress       ("jms://");
    workflowServiceServerFactory.setServiceBean
(this.workflowService);//spring bean IOC

    workflowServiceServerFactory.getInInterceptors ().add(new
LoggingInInterceptor ());
    workflowServiceServerFactory.getOutInterceptors().add(new
LoggingOutInterceptor());

    workflowServiceServerFactory.create();



    JaxWsServerFactoryBean organisationServiceServerFactory = new
JaxWsServerFactoryBean();

    organisationServiceServerFactory.setServiceClass
(OrganisationService.class);
    organisationServiceServerFactory.setAddress       ("jms://");
    organisationServiceServerFactory.setServiceBean
(this.workflowService);//spring bean IOC


    organisationServiceServerFactory.getInInterceptors ().add(new
LoggingInInterceptor ());
    organisationServiceServerFactory.getOutInterceptors().add(new
LoggingOutInterceptor());

    organisationServiceServerFactory.create();


I'm currently building the wsld with this maven build :


  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-java2ws-plugin</artifactId>
        <version>${cxf.version}</version>
        <dependencies>
          <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>${cxf.version}</version>
          </dependency>
        </dependencies>
        <configuration>
          
<className>fr.rs2i.swFramework.services.workflow.api.WorkflowService</className>
          
<outputFile>${project.build.directory}/generated/wsdl/WorkflowService.wsdl</outputFile>
          <genWsdl>true</genWsdl>
          <verbose>true</verbose>
        </configuration>
        <executions>
          <execution>
            <id>process-classes</id>
            <phase>process-classes</phase>
            <goals>
              <goal>java2ws</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>



Would it be possible to merge two WSDL inside one file  ?


Thanks for your help,

Thomas.

Reply via email to