cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Willem Jiang <ning.ji...@iona.com>
Subject Re: FW: Java first question
Date Thu, 07 Dec 2006 03:11:10 GMT
Hi,
Just have a quick look into the code.
It looks like the ServiceInfo which is got from the Service doesn't 
contain any PortInfo.
I will write a unit test to test about it .

BTW
Almost all the test cases in systest are WSDL first,  we need more unit 
tests and system tests of the Code first.

Thanks,
Willem.
 
Dan Diephouse wrote:

> This sounds like a bug in ServiceImpl (I don't know that anyone tested 
> the
> Java first part of this). Can you file a JIRA with the stack trace?
>
> Thanks,
> - Dan
>
> On 12/6/06, Johnson, Eric <Eric.Johnson@iona.com> wrote:
>
>>
>> I tried to use the create method that specifies the port name to get
>> around the unable to find port name exception and got the following
>> exception:
>>      [java] Service {http://demo.eric.org}stockQuoteReporter created...
>>      [java] Exception in thread "main" java.lang.NullPointerException:
>> EndpointInfo can not be null!
>>      [java]     at
>> org.apache.cxf.endpoint.EndpointImpl.<init>(EndpointImpl.java:66)
>>      [java]     at
>> org.apache.cxf.jaxws.support.JaxWsEndpointImpl.<init>(JaxWsEndpointImpl.
>> java:56)
>>      [java]     at
>> org.apache.cxf.jaxws.ServiceImpl.createPort(ServiceImpl.java:272)
>>      [java]     at
>> org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:200)
>>      [java]     at javax.xml.ws.Service.getPort(Service.java:94)
>>      [java]     at org.eric.demo.Client.main(Client.java:16)
>>
>> The portName I passed in was
>> {http://demo.eric.org}stockQuoteReporterPort.
>>
>> The WSDL returned from the server is:
>> <?xml version="1.0" encoding="UTF-8"?>
>> <wsdl:definitions name="stockQuoteReporter"
>> targetNamespace="http://demo.eric.org"
>> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
>> xmlns:ns1="http://demo.eric.org"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>> xmlns:soap="http://schemas.xmlsoap.org/soap/"
>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
>>   <wsdl:types>
>> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0">
>> <xs:complexType name="quote">
>> <xs:sequence>
>> <xs:element minOccurs="0" name="ID" type="xs:string"/>
>> <xs:element minOccurs="0" name="time" type="xs:string"/>
>> <xs:element name="val" type="xs:float"/>
>> </xs:sequence>
>> </xs:complexType>
>> </xs:schema>
>> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>> xmlns="http://demo.eric.org" attributeFormDefault="unqualified"
>> elementFormDefault="qualified" targetNamespace="http://demo.eric.org">
>> <xsd:element name="getQuote">
>> <xsd:complexType>
>> <xsd:sequence>
>> <xsd:element name="arg00" type="xsd:string"/>
>> </xsd:sequence>
>> </xsd:complexType>
>> </xsd:element>
>> <xsd:element name="getQuoteResponse">
>> <xsd:complexType>
>> <xsd:sequence>
>> <xsd:element name="return" type="quote"/>
>> </xsd:sequence>
>> </xsd:complexType>
>> </xsd:element>
>> </xsd:schema>
>>   </wsdl:types>
>>   <wsdl:message name="getQuote">
>>     <wsdl:part name="getQuote" element="ns1:getQuote">
>>     </wsdl:part>
>>   </wsdl:message>
>>   <wsdl:message name="getQuoteResponse">
>>     <wsdl:part name="getQuoteResponse" element="ns1:getQuoteResponse">
>>     </wsdl:part>
>>   </wsdl:message>
>>   <wsdl:portType name="stockQuoteReporterPortType">
>>     <wsdl:operation name="getQuote">
>>       <wsdl:input name="getQuote" message="ns1:getQuote">
>>     </wsdl:input>
>>       <wsdl:output name="getQuoteResponse"
>> message="ns1:getQuoteResponse">
>>     </wsdl:output>
>>     </wsdl:operation>
>>   </wsdl:portType>
>>   <wsdl:binding name="stockQuoteReporterSoapBinding"
>> type="ns1:stockQuoteReporterPortType">
>>     <wsdlsoap:binding style="document"
>> transport="http://schemas.xmlsoap.org/soap/http"/>
>>     <wsdl:operation name="getQuote">
>>       <wsdlsoap:operation soapAction="" style="document"/>
>>       <wsdl:input name="getQuote">
>>         <wsdlsoap:body use="literal"/>
>>       </wsdl:input>
>>       <wsdl:output name="getQuoteResponse">
>>         <wsdlsoap:body use="literal"/>
>>       </wsdl:output>
>>     </wsdl:operation>
>>   </wsdl:binding>
>>   <wsdl:service name="stockQuoteReporter">
>>     <wsdl:port name="stockQuoteReporterPort"
>> binding="ns1:stockQuoteReporterSoapBinding">
>>       <wsdlsoap:address
>> location="http://localhost:9000/EricStockQuote"/>
>>     </wsdl:port>
>>   </wsdl:service>
>> </wsdl:definitions>
>>
>> Is there something I'm not doing correctly?
>>
>>
>> > -----Original Message-----
>> > From: Johnson, Eric [mailto:Eric.Johnson@iona.com]
>> > Sent: Wednesday, December 06, 2006 1:20 PM
>> > To: cxf-dev@incubator.apache.org
>> > Subject: RE: FW: Java first question
>> >
>> > I got the server running and now I created the following
>> > client code to connect to it:
>> > package org.eric.demo;
>> >
>> > import java.io.File;
>> > import java.net.URL;
>> > import javax.xml.namespace.QName;
>> > import javax.xml.ws.Service;
>> >
>> > public class Client
>> > {
>> > public static void main(String args[])
>> >   {
>> >     QName serviceName = new QName("http://demo.eric.org",
>> > "stockQuoteReporter");
>> >     Service s = Service.create(serviceName);
>> >       System.out.println("Service "+serviceName+" created...");
>> >       quoteReporter proxy = s.getPort(quoteReporter.class);
>> >       System.out.println("Proxy created...");
>> >       Quote quote = proxy.getQuote("ALPHA");
>> >       System.out.println("Stock "+quote.getID()+" is worth
>> > "+quote.getVal()+" as of "+quote.getTime());
>> >   }
>> > }
>> >
>> > The SEI is as follows:
>> > package org.eric.demo;
>> >
>> > import javax.jws.*;
>> >
>> > @WebService(name="quoteReporter")
>> > public interface quoteReporter
>> > {
>> >   public Quote getQuote(String ticker);
>> > }
>> >
>> > When I run the client I get the following:
>> > client:
>> >      [java] Service {http://demo.eric.org}stockQuoteReporter
>> > created...
>> >      [java] Exception in thread "main"
>> > javax.xml.ws.WebServiceException:
>> > Unable to determine port name.
>> >      [java]     at
>> > org.apache.cxf.jaxws.ServiceImpl.createPort(ServiceImpl.java:267)
>> >      [java]     at
>> > org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:193)
>> >      [java]     at javax.xml.ws.Service.getPort(Service.java:120)
>> >      [java]     at org.eric.demo.Client.main(Client.java:15)
>> >
>> > What do I need to do to get the client to connect?
>> >
>> >
>> > > -----Original Message-----
>> > > From: Dan Diephouse [mailto:dan@envoisolutions.com]
>> > > Sent: Wednesday, December 06, 2006 12:12 PM
>> > > To: cxf-dev@incubator.apache.org
>> > > Subject: Re: FW: Java first question
>> > >
>> > > I saw this problem the other day but haven't had the chance
>> > to fix - I
>> > > think it occurs when you leave @WebService off your implementation
>> > > class. If you have an interface & implementation (as
>> > opposed to just a
>> > > class), then you need to specify
>> > @WebService(endpointInterface="...")
>> > >
>> > > Hope that helps,
>> > > - Dan
>> > >
>> > > On 12/6/06, Johnson, Eric <Eric.Johnson@iona.com> wrote:
>> > > >
>> > > > Using the attached code I get the following exception when
>> > > running my
>> > > > server:
>> > > >      [java] Exception in thread "main"
>> > > java.lang.NullPointerException
>> > > >      [java]     at
>> > > >
>> > >
>> > org.apache.cxf.jaxws.support.JaxWsImplementorInfo.getEndpointName(JaxW
>> > > > sI
>> > > > mplementorInfo.java:123)
>> > > >      [java]     at
>> > > >
>> > >
>> > org.apache.cxf.jaxws.support.JaxWsServiceConfiguration.getEndpointName
>> > > > (J
>> > > > axWsServiceConfiguration.java:103)
>> > > >      [java]     at
>> > > >
>> > >
>> > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.getEndpoin
>> > > > tN
>> > > > ame(ReflectionServiceFactoryBean.java:455)
>> > > >      [java]     at
>> > > >
>> > >
>> > org.apache.cxf.service.factory.AbstractEndpointFactory.createEndpoint(
>> > > > Ab
>> > > > stractEndpointFactory.java:60)
>> > > >      [java]     at
>> > > >
>> > >
>> > org.apache.cxf.service.factory.ServerFactoryBean.create(ServerFactoryB
>> > > > ea
>> > > > n.java:77)
>> > > >      [java]     at
>> > > > org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:220)
>> > > >      [java]     at
>> > > > org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:155)
>> > > >      [java]     at
>> > > >
>> > >
>> > org.apache.cxf.jaxws.spi.ProviderImpl.createAndPublishEndpoint(Provide
>> > > > rI
>> > > > mpl.java:67)
>> > > >      [java]     at
>> > javax.xml.ws.Endpoint.publish(Endpoint.java:156)
>> > > >      [java]     at org.eric.demo.Server.main(Server.java:12)
>> > > >
>> > > > What did I forget to do?
>> > > >
>> > > > > -----Original Message-----
>> > > > > From: Jim Ma [mailto:jim.ma@iona.com]
>> > > > > Sent: Tuesday, December 05, 2006 9:35 PM
>> > > > > To: cxf-dev@incubator.apache.org
>> > > > > Subject: RE: Java first question
>> > > > >
>> > > > > If use RPC_Lit and Doc_Bare , we need add  two annotaions to
an
>> > > > > interface:
>> > > > > @WebService
>> > > > > @SOAPBinding
>> > > > >
>> > > > > If use Doc_Wrapped, we only need to add @WebService annotation
.
>> > > > > Doc_Wrapped is the default  style .
>> > > > >
>> > > > > Regards
>> > > > >
>> > > > > Jim
>> > > > >
>> > > > > > -----Original Message-----
>> > > > > > From: Johnson, Eric [mailto:Eric.Johnson@iona.com]
>> > > > > > Sent: Wednesday, December 06, 2006 6:57 AM
>> > > > > > To: cxf-dev@incubator.apache.org
>> > > > > > Subject: Java first question
>> > > > > >
>> > > > > >
>> > > > > > What is the minimum amount of annotation I need to add to
>> > > > > an interface
>> > > > > > to Web service enable it?
>> > > > > >
>> > > > > >
>> > > > >
>> > > > >
>> > > >
>> > > >
>> > >
>> > >
>> > > --
>> > > Dan Diephouse
>> > > Envoi Solutions
>> > > http://envoisolutions.com | http://netzooid.com/blog
>> > >
>> >
>>
>
>
>


Mime
View raw message