Hi Marc,
The redunadant declaration of address and implementing class is unnecessary, actually the context could be
<beans xmlns="http://www.springframework.org/schema/beans";
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
       xmlns:jaxws="http://cxf.apache.org/jaxws";
       xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd";>

       <import resource="classpath:META-INF/cxf/cxf.xml" />
       <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
       <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
       <bean id="aegisDatabinding"
             class="org.apache.cxf.aegis.databinding.AegisDatabinding"/>
       <bean id="serviceFactory"
             class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean">
               <property name="dataBinding" ref="aegisDatabinding"/>
       </bean>
       <jaxws:endpoint
         id="helloWorld"
         implementor="demo.spring.HelloWorldImpl"
         address="/HelloWorld">
         <jaxws:serviceFactory>
            <ref bean="serviceFactory"/>
         </jaxws:serviceFactory>
       </jaxws:endpoint>

</beans>
For Could not find destination factory for transport http://schemas.xmlsoap.org/soap/http, I cann't reproduce it and it should be classpath issue, can you append your classpath? Or just add cxf-2.1-incubator-SNAPSHOT.jar from cxf kit on your classpath and try it again?

Do I really have to define every web service by its own with implementation 
class and url? Is it not possible that cxf gets this information from the 
annotations?

Answer: Consider the scenario that we are using code first way, so HelloWorldImpl may not have all annotations as we need.

Best Regards

Freeman


Marc Baumgartner wrote:
Hi Freeman,

is it possible to avoid the redunadant declaration of the adress and 
implementing class?

With your example configuration I have to define these parameters twice.

Do I really have to define every web service by its own with implementation 
class and url? Is it not possible that cxf gets this information from the 
annotations?

When I start my test I get again an exception:

Caused by: java.lang.RuntimeException: Could not find destination factory for 
transport http://schemas.xmlsoap.org/soap/http

Same question as in my other mail :-)

Regards,
Marc



-------- Original-Nachricht --------
Datum: Fri, 13 Jul 2007 16:24:57 +0800
Von: Freeman Fang <[EMAIL PROTECTED]>
An: [email protected]
Betreff: Re:

Hi Marc,

You can do it like
<beans xmlns="http://www.springframework.org/schema/beans";
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
        xmlns:jaxws="http://cxf.apache.org/jaxws";
        xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd";>

        <import resource="classpath:META-INF/cxf/cxf.xml" />
        <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"
/>
        <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
        <bean id="serviceClass" class="demo.spring.HelloWorldImpl"/>
        <bean id="aegisDatabinding"
              class="org.apache.cxf.aegis.databinding.AegisDatabinding"/>
        <bean id="serviceFactory"
class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean">
                <property name="dataBinding" ref="aegisDatabinding"/>
        </bean>
<bean id="serverBeanFactory" class="org.apache.cxf.frontend.ServerFactoryBean"
              init-method="create">
                <property name="address" value="/HelloWorld"/>
<property name="bindingId" value="http://schemas.xmlsoap.org/soap/"/>
                <property name="serviceBean" ref="serviceClass"/>
                <property name="serviceFactory" ref="serviceFactory"/>
        </bean>
        <jaxws:endpoint
          id="helloWorld"
          implementor="demo.spring.HelloWorldImpl"
          address="/HelloWorld">
          <jaxws:serviceFactory>
             <ref bean="serviceFactory"/>
          </jaxws:serviceFactory>
        </jaxws:endpoint>

</beans>

Best Regards

Freeman

Marc Baumgartner wrote:
How do I configure in my applicationContext.xml to use Aegis?

Is there anywhere an example?

Regards
Marc

-------- Original-Nachricht --------
Datum: Thu, 12 Jul 2007 13:35:58 -0600
Von: "Dan Diephouse" <[EMAIL PROTECTED]>
An: [email protected]
Betreff: Re:

JAXB can't handle interfaces. What you want to do is configure your
service
to use the Aegis databinding library from XFire instead:

http://cwiki.apache.org/CXF20DOC/aegis-databinding.html

Aegis will handle just about any datatypes you throw at it. Hope that
helps,
- Dan

On 7/12/07, Marc Baumgartner <[EMAIL PROTECTED]> wrote:
Hi,

in Xfire it is possible to define a complex result object from a web
service as an interface like this:

public interface Greeting {

        public abstract void setMessage(String msg);

        public abstract String getMessage();

}

@WebService
public interface HelloWorldService {

        @WebMethod
        @WebResult(name="Greeting")
        public List<hello.impl.GreetingImpl> getGreeting(String name);

        @WebMethod
        public String sayHello(String name);
}

With CXF a signature like this causes an error. It seems that JAXB can
not
handle the result interfaces. Is it possible to "tell" JAXB to accept
the
interfaces? Can I use another bindung lib? How do i configure it?

Regards,
Marc


--
Psssst! Schon vom neuen GMX MultiMessenger gehört?
Der kanns mit allen: http://www.gmx.net/de/go/multimessenger

--
Dan Diephouse
Envoi Solutions
http://envoisolutions.com | http://netzooid.com/blog

Reply via email to