Hi Christian,

I used the wsd2java to generate the SEI from your wsdl

package dk.unwire.ws.webstat.v1;

import javax.jws.WebParam.Mode;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding.Style;
import javax.jws.soap.SOAPBinding;
import javax.jws.WebMethod;

/**
* This class was generated by the CXF 2.1-incubator-SNAPSHOT
* Tue Jul 10 18:07:02 CST 2007
* Generated source version: 2.1-incubator-SNAPSHOT
*
*/

@WebService(targetNamespace = "http://ws.unwire.dk/webstat/v1";, name = "HelloWor
ldPort")
@SOAPBinding(style = SOAPBinding.Style.RPC)

public interface HelloWorldPort {

@WebMethod(action = "http://unwire.dk/SayHello";, operationName = "SayHello")

   public void sayHello(
       @WebParam(mode = Mode.INOUT, partName = "msg", name = "msg")
       javax.xml.ws.Holder<java.lang.String> msg
   );
}

It looks like your wsdl is not march with the SEI that you use in your impl's WebService annotation.

My suggestion is you remove the wsdlLocation in the beans.xml to let the ReflectionServiceFactoryBean to build the service form class, or you can change to use the upper SEI to implement your service without changing any thing in the beans.xml ( ReflectionServiceFactoryBean will build the service from wsdl ).

Hope these can help your out :)

Willem.



Christian Vest Hansen wrote:
The service impl class looks like this with the change you suggested,
plus I added the 'name' parameter:

package dk.unwire.statistics2;
import javax.jws.WebService;
@WebService(
        endpointInterface = "dk.unwire.statistics2.HelloWorld"
        ,serviceName="HelloWorld"
        ,targetNamespace="http://ws.unwire.dk/webstat/v1";
        ,portName="HelloWorldDev"
        ,name="HelloWorldPort"
    )
public class HelloWorldImpl implements HelloWorld{
    public String sayHello(String text) {
        return "I greet thee; " + text + "!";
    }
}

But now I'm getting a different exception:

11:38:34,053 DEBUG [DefaultListableBeanFactory] Eagerly caching bean
'helloWorld' to allow for resolving potential circular references
11:38:34,066 ERROR [STDERR] Jul 10, 2007 11:38:34 AM
org.apache.cxf.service.factory.ReflectionServiceFactoryBean
buildServiceFromWSDL
INFO: Creating Service {http://ws.unwire.dk/webstat/v1}HelloWorld from
WSDL: classpath:HelloWorld.wsdl
11:38:34,139 DEBUG [DefaultListableBeanFactory] Returning cached
instance of singleton bean
'org.apache.cxf.binding.soap.SoapTransportFactory'
11:38:34,169 INFO  [DefaultListableBeanFactory] Destroying singletons
in [EMAIL PROTECTED]: defining beans [cxf,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cxf.bus.spring.BusExtensionPostProcessor,org.apache.cxf.resource.ResourceManager,org.apache.cxf.binding.BindingFactoryManager,org.apache.cxf.transport.DestinationFactoryManager,org.apache.cxf.transport.ConduitInitiatorManager,org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,org.apache.cxf.workqueue.WorkQueueManager,org.apache.cxf.buslifecycle.BusLifeCycleManager,org.apache.cxf.endpoint.ServerRegistry,org.apache.cxf.endpoint.ServerLifeCycleManager,org.apache.cxf.endpoint.ClientLifeCycleManager,org.apache.cxf.transports.http.QueryHandlerRegistry,org.apache.cxf.endpoint.EndpointResolverRegistry,org.apache.cxf.headers.HeaderManager,org.apache.cxf.catalog.OASISCatalogManager,org.apache.cxf.binding.soap.SoapBindingFactory,org.apache.cxf.binding.soap.SoapTransportFactory,org.apache.cxf.binding.soap.customEditorConfigurer,org.apache.cxf.transport.servlet.ServletTransportFactory,helloWorl
d];
root of factory hierarchy
11:38:34,172 DEBUG [DefaultListableBeanFactory] Retrieved dependent
beans for bean 'org.apache.cxf.configuration.spring.SpringBeanMap#42d700':
[org.apache.cxf.transport.ConduitInitiatorManager]
11:38:34,174 DEBUG [DefaultListableBeanFactory] Retrieved dependent
beans for bean 'org.apache.cxf.configuration.spring.SpringBeanMap#691a61':
[org.apache.cxf.transport.DestinationFactoryManager]
11:38:34,174 DEBUG [DefaultListableBeanFactory] Retrieved dependent
beans for bean 'org.apache.cxf.configuration.spring.SpringBeanMap#c25152':
[org.apache.cxf.binding.BindingFactoryManager]
11:38:34,174 DEBUG [DefaultListableBeanFactory] Retrieved dependent
beans for bean 'org.apache.cxf.resource.ClassLoaderResolver#45a634':
[org.apache.cxf.resource.ResourceManager]
11:38:34,174 DEBUG [DefaultListableBeanFactory] Retrieved dependent
beans for bean 'org.apache.cxf.resource.ClasspathResolver#518643':
[org.apache.cxf.resource.ResourceManager]
11:38:34,175 ERROR [ContextLoader] Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'helloWorld': Invocation of init method
failed; nested exception is java.lang.NullPointerException
Caused by:
java.lang.NullPointerException
at org.apache.cxf.jaxws.support.JaxWsServiceConfiguration.getInParameterName(JaxWsServiceConfiguration.java:187) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.getInParameterName(ReflectionServiceFactoryBean.java:1200) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.getInPartName(ReflectionServiceFactoryBean.java:1180) at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.initializeParameter(JaxWsServiceFactoryBean.java:390) at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.initializeClassInfo(JaxWsServiceFactoryBean.java:371) at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.initializeWSDLOperation(JaxWsServiceFactoryBean.java:187) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeWSDLOperations(ReflectionServiceFactoryBean.java:303) at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.initializeWSDLOperations(JaxWsServiceFactoryBean.java:196) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:195) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:246) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:136) at org.apache.cxf.frontend.AbstractEndpointFactory.createEndpoint(AbstractEndpointFactory.java:83) at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:89) at org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:142)
    at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:277)


2007/7/10, Willem Jiang <[EMAIL PROTECTED]>:
Hi Christian

Can you provide the impl class's  annotation
(dk.unwire.statistics2.HelloWorldImpl's WebService annotation )?  Please
make sure the portName="HelloWorldDev".
It looks like the ReflectionServiceFactoryBean can not find the wsdl
port name from  the impl class.

Cheers,

Willem.

Christian Vest Hansen wrote:
> Hi again,
>
> I'm running into this excheption in my quest for a working service.
> I don't know why it somehow can't the port type, or where it's looking
> for a port type.
> I tried renaming the port type in my WSDL and tried to see if I could
> somehow set it with anotations or in my beans.xml, but none of that
> helped any.
> I know that it's reading the WSDL because a syntax error in it would
> prevent it from getting this far.
>
> I'm attaching my beans.xml, wsdl, service interface and service
> implementation in the hopes that it might clue you on what I'm
> apparently doing wrong.
>
> Here's a snip from the log when I deploy my service:
>
> 10:18:32,438 DEBUG [DefaultListableBeanFactory] Creating shared
> instance of singleton bean 'helloWorld'
> 10:18:32,438 DEBUG [DefaultListableBeanFactory] Creating instance of
> bean 'helloWorld' with merged definition [Root bean: class
> [org.apache.cxf.jaxws.EndpointImpl]; scope=singleton; abstract=false;
> lazyInit=false; autowireCandidate=true; autowireMode=0;
> dependencyCheck=0; factoryBeanName=null; factoryMethodName=null;
> initMethodName=publish; destroyMethodName=stop]
> 10:18:32,444 DEBUG [DefaultListableBeanFactory] Returning cached
> instance of singleton bean 'cxf'
> 10:18:32,484 DEBUG [DefaultListableBeanFactory] Eagerly caching bean
> 'helloWorld' to allow for resolving potential circular references
> 10:18:32,494 ERROR [STDERR] Jul 10, 2007 10:18:32 AM
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean
> buildServiceFromWSDL
> INFO: Creating Service {http://ws.unwire.dk/webstat/v1}HelloWorld from
> WSDL: classpath:HelloWorld.wsdl
> 10:18:32,563 DEBUG [DefaultListableBeanFactory] Returning cached
> instance of singleton bean
> 'org.apache.cxf.binding.soap.SoapTransportFactory'
> 10:18:32,575 INFO  [DefaultListableBeanFactory] Destroying singletons
> in
> [EMAIL PROTECTED]:
>
> defining beans
> [cxf,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cxf.bus.spring.BusExtensionPostProcessor,org.apache.cxf.resource.ResourceManager,org.apache.cxf.binding.BindingFactoryManager,org.apache.cxf.transport.DestinationFactoryManager,org.apache.cxf.transport.ConduitInitiatorManager,org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,org.apache.cxf.workqueue.WorkQueueManager,org.apache.cxf.buslifecycle.BusLifeCycleManager,org.apache.cxf.endpoint.ServerRegistry,org.apache.cxf.endpoint.ServerLifeCycleManager,org.apache.cxf.endpoint.ClientLifeCycleManager,org.apache.cxf.transports.http.QueryHandlerRegistry,org.apache.cxf.endpoint.EndpointResolverRegistry,org.apache.cxf.headers.HeaderManager,org.apache.cxf.catalog.OASISCatalogManager,org.apache.cxf.binding.soap.SoapBindingFactory,org.apache.cxf.binding.soap.SoapTransportFactory,org.apache.cxf.binding.soap.customEditorConfigurer,org.apache.cxf.transport.servlet.ServletTransportFactory,helloWorl
>
> d];
> root of factory hierarchy
> 10:18:32,579 DEBUG [DefaultListableBeanFactory] Retrieved dependent
> beans for bean
> 'org.apache.cxf.configuration.spring.SpringBeanMap#9a41a5':
> [org.apache.cxf.transport.ConduitInitiatorManager]
> 10:18:32,580 DEBUG [DefaultListableBeanFactory] Retrieved dependent
> beans for bean
> 'org.apache.cxf.configuration.spring.SpringBeanMap#b299f7':
> [org.apache.cxf.transport.DestinationFactoryManager]
> 10:18:32,581 DEBUG [DefaultListableBeanFactory] Retrieved dependent
> beans for bean
> 'org.apache.cxf.configuration.spring.SpringBeanMap#8f95c8':
> [org.apache.cxf.binding.BindingFactoryManager]
> 10:18:32,581 DEBUG [DefaultListableBeanFactory] Retrieved dependent
> beans for bean 'org.apache.cxf.resource.ClassLoaderResolver#da814e':
> [org.apache.cxf.resource.ResourceManager]
> 10:18:32,581 DEBUG [DefaultListableBeanFactory] Retrieved dependent
> beans for bean 'org.apache.cxf.resource.ClasspathResolver#cbc0bc':
> [org.apache.cxf.resource.ResourceManager]
> 10:18:32,581 ERROR [ContextLoader] Context initialization failed
> org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name 'helloWorld': Invocation of init method
> failed; nested exception is
> org.apache.cxf.service.factory.ServiceConstructionException:
> COULD_NOT_FIND_PORTTYPE
> Caused by:
> org.apache.cxf.service.factory.ServiceConstructionException:
> COULD_NOT_FIND_PORTTYPE
>     at
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.getInterfaceInfo(ReflectionServiceFactoryBean.java:270)
>
>     at
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeWSDLOperations(ReflectionServiceFactoryBean.java:277)
>
>     at
> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.initializeWSDLOperations(JaxWsServiceFactoryBean.java:196)
>
>     at
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:195)
>
>     at
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:246)
>
>     at
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:136)
>
>     at
> org.apache.cxf.frontend.AbstractEndpointFactory.createEndpoint(AbstractEndpointFactory.java:83)
>
>     at
> org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:89)
>
>     at
> org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:142)
>
> at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:277) > at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:223) > at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:175) > at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:329)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
>     at java.lang.reflect.Method.invoke(Method.java:585)
>     at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1214)
>
>     at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1179)
>
>     at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1145)
>
>     at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427)
>
>     at
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
>
>     at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:144)
>
>     at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
>
>     at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
>
>     at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:279)
>
>     at
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:360)
>
>     at
> org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:241)
>
>
>
> ------------------------------------------------------------------------
>
> <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-2.0.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" />
>
>       <jaxws:endpoint
>               id="helloWorld"
>               implementor="dk.unwire.statistics2.HelloWorldImpl"
>               address="/HelloWorld"
>               wsdlLocation="classpath:HelloWorld.wsdl"
>                />
> </beans>
> ------------------------------------------------------------------------
>
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; xmlns:unw="http://ws.unwire.dk/webstat/v1"; xmlns:ns="http://unwire.dk/statistics"; targetNamespace="http://ws.unwire.dk/webstat/v1";>
>
>       <wsdl:message name="Msg">
>               <wsdl:part name="msg" type="xs:string"/>
>       </wsdl:message>
>       <wsdl:portType name="HelloWorldPort">
>               <wsdl:operation name="SayHello">
>                       <wsdl:input message="unw:Msg"/>
>                       <wsdl:output message="unw:Msg"/>
>               </wsdl:operation>
>       </wsdl:portType>
>       <wsdl:binding name="HelloWorldSOAP" type="unw:HelloWorldPort">
> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
>               <wsdl:operation name="SayHello">
> <soap:operation soapAction="http://unwire.dk/SayHello"/>
>                       <wsdl:input>
>                               <soap:body use="literal"/>
>                       </wsdl:input>
>                       <wsdl:output>
>                               <soap:body use="literal"/>
>                       </wsdl:output>
>               </wsdl:operation>
>       </wsdl:binding>
>       <wsdl:service name="HelloWorld">
> <wsdl:port name="HelloWorldDev" binding="unw:HelloWorldSOAP"> > <soap:address location="http://localhost:8000/Statistics2/HelloWorld"/>
>               </wsdl:port>
>       </wsdl:service>
> </wsdl:definitions>
>





Reply via email to