Hi,

I'm running through the "Expose your Mgr as  Web Service" tutorial and using
the annotations as described, and also adding a line for PersonService to
cxf-servlet.xml since I found that lying around and saw the entry for
UserService in it.  I'm getting a WSDL for my new PersonService but it's
truncated, it looks like the classes weren't properly scanned or something,
the WSLD looks like this:

<wsdl:definitions name="PersonManagerImplService"
targetNamespace="http://impl.service.app.dcs.foo.com/";>
<wsdl:portType name="PersonManagerImpl">
  </wsdl:portType>
<wsdl:binding name="PersonManagerImplServiceSoapBinding"
type="tns:PersonManagerImpl">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
</wsdl:binding>
<wsdl:service name="PersonManagerImplService">
<wsdl:port binding="tns:PersonManagerImplServiceSoapBinding"
name="PersonManagerImplPort">
<soap:address location="http://localhost:8080/services/PersonService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

I integrated CXF successfully via integrating mule with AppFuse in Decemeber
2009 and back then I had to add some additional annotations like these:

@WebService
public interface PersonManager extends GenericManager<Person, Long> {

  @WebResult(name="personsByLastName")
  List<Person> findByLastName(@WebParam(name="lastName") String lastName);
}

I tried doing that here though and it made no difference.  The other thing
that looks funny besides the massively truncated WSDL is the listing in the
localhost:8080/services page.  It lists my new PersonService but shows no
operations, unlike the UserService.  It also lists the PersonService as
"PersonManagerImpl" instead of listing it as PersonService like with
UserService in the left hand box and lists the WSDL URL using the
PersonManagerImpl class as well... 

I have my personDao and personManager listed in applicationCOntext.xml like
this:

<bean id="personDao"
class="com.foo.dcs.app.dao.hibernate.PersonDaoHibernate"> 
  <property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="personManager"
class="com.foo.dcs.app.service.impl.PersonManagerImpl">
  <constructor-arg ref="personDao"/>
</bean>

The output when I start the app under the jetty plugin looks the same as
UserService, and the CXF config file is being loaded from WEB-INF:

Aug 5, 2010 1:25:42 PM
org.apache.cxf.service.factory.ReflectionServiceFactoryBean
buildServiceFromClass
INFO: Creating Service
{http://impl.service.app.dcs.foo.com/}PersonManagerImplService from class
com.foo.dcs.app.service.impl.PersonManagerImpl
Aug 5, 2010 1:25:42 PM org.apache.cxf.endpoint.ServerImpl initDestination
INFO: Setting the server's publish address to be /PersonService

Something is not right here, but I have not figured out what it is.  I still
suspect that somehow the classes aren't being scanned properly or completely
but I could be wrong.  Any help would be appreciated, much thanks in
advance...

-=j=-

-- 
View this message in context: 
http://appfuse.547863.n4.nabble.com/getting-truncated-WSDL-for-PersonService-under-CXF-tp2315829p2315829.html
Sent from the AppFuse - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@appfuse.dev.java.net
For additional commands, e-mail: users-h...@appfuse.dev.java.net

Reply via email to