Remove the createdFromAPI="true" flag from jaxws:endpoint. With that set, at some point, you need to call Endpoint.publish or similar to cause it to be published. If it's not set, CXF/Spring will create and publish the object.
Dan On Sat December 12 2009 2:31:32 am Christopher Cheng wrote: > Hi, > > I've got the following in my server log > Can't find the request for > http://webservices.mycompany.com/websvc'sObserver > > What am I missing so that the Observer cannot find it's endpoints? > I am using cxf2.2, it has been working in cxf2.1, it seems that CXFServlet > cannot find the endpoints. It's running on jdk1.6.0_11 and resin-3.1.6 > > The following is web.xml > > <web-app> > <servlet> > <servlet-name>CXFServlet</servlet-name> > <display-name>CXF Servlet</display-name> > > <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> > <init-param> > <param-name>config-location</param-name> > <param-value>cxf.xml</param-value> > </init-param> > <load-on-startup>1</load-on-startup> > </servlet> > <servlet-mapping> > <servlet-name>CXFServlet</servlet-name> > <url-pattern>/*</url-pattern> > </servlet-mapping> > </web-app> > > > The following is cxf.xml in WEB-INF/classes > > <beans xmlns="http://www.springframework.org/schema/beans" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:jaxws="http://cxf.apache.org/jaxws" > xmlns:cxf="http://cxf.apache.org/core" > xmlns:jaxrs="http://cxf.apache.org/jaxrs" > xsi:schemaLocation=" > http://cxf.apache.org/core > http://cxf.apache.org/schemas/core.xsd > http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans-2.0.xsd > http://cxf.apache.org/jaxrs > http://cxf.apache.org/schemas/jaxrs.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:client name="{ > http://webservices.mycompany.com/websvc}FarePortType" > createdFromAPI="true"> > <jaxws:dataBinding> > <bean class="org.apache.cxf.xmlbeans.XmlBeansDataBinding"/> > </jaxws:dataBinding> > </jaxws:client> > <jaxws:endpoint name="{ > http://webservices.mycompany.com/websvc}FarePortType" > address="/websvc" > > wsdlLocation="classpath:com/mycompany/webservices/wsdl/OTA_AirFareDisplayRQ > .wsdl" createdFromAPI="true" > > <jaxws:properties> > <entry key="schema-validation-enabled" value="true"/> > </jaxws:properties> > <jaxws:dataBinding> > <bean class="org.apache.cxf.xmlbeans.XmlBeansDataBinding"/> > </jaxws:dataBinding> > </jaxws:endpoint> > > <bean id="logInbound" > class="org.apache.cxf.interceptor.LoggingInInterceptor"/> > <bean id="logOutbound" > class="org.apache.cxf.interceptor.LoggingOutInterceptor"/> > <bean id="cxf" class="org.apache.cxf.bus.CXFBusImpl"> > <property name="inInterceptors"> > <list> > <ref bean="logInbound"/> > </list> > </property> > <property name="outInterceptors"> > <list> > <ref bean="logOutbound"/> > </list> > </property> > <property name="outFaultInterceptors"> > <list> > <ref bean="logOutbound"/> > </list> > </property> > </bean> > <bean id="fastinfoset" > class="org.apache.cxf.feature.FastInfosetFeature"/> > <cxf:bus> > <cxf:features> > <cxf:logging/> > <ref bean="fastinfoset"/> > </cxf:features> > </cxf:bus> > </beans> > > The following is the definition of Interface > > WebService(targetNamespace = "http://webservices.mycompany.com/websvc", > name = "FarePortType") > @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE) > public interface FarePortType { > @WebResult(name = "OTA_AirFareDisplayRS", targetNamespace = " > http://www.opentravel.org/OTA/2003/05", partName = "body") > @WebMethod(operationName = "FareRQ", action = "OTA") > public org.opentravel.ota.x2003.x05.OTAAirFareDisplayRSDocument fareRQ( > @WebParam(partName = "body", name = "OTA_AirFareDisplayRQ", > targetNamespace = "http://www.opentravel.org/OTA/2003/05") > org.opentravel.ota.x2003.x05.OTAAirFareDisplayRQDocument body > ); > } > > Finally the following is the header of the class > > @javax.jws.WebService( > serviceName = "FareService", > portName = "FarePortType", > targetNamespace = " > http://webservices.mycompany.com/websvc", > wsdlLocation = > "classpath:com/mycompany/webservices/wsdl/OTA_AirFareDisplayRQ.wsdl", > endpointInterface = > "com.mycompany.webservices.websvc.FarePortType") > > public class FarePortTypeImpl implements FarePortType { > .... > } > -- Daniel Kulp [email protected] http://www.dankulp.com/blog
