Hi Eric,
I think your client side code need to be changed to get the connect to
the server.
Here are two ways to create client.
1. Code first , as you know , when you use code first to create
webservice, you need to specify the endpoint address or the
ServerFactoryBean will build an default address for you.
That means from the Java code we can't get the address to build up
the endpoint information.
So when you use
Service s = Service.create(serviceName);
to create endpoint info, you can use addport to specify the detail
binding and address info.
service.addPort(portName, "http://schemas.xmlsoap.org/soap/",
"http://localhost:9000/SoapContext/SoapPort");
quoteReporter proxy = s.getPort(portName, quoteReporter.class);
The example you can find from
org.apache.cxf.systest.jaxws.ClientServerTest's testAddPort.
2. WSDL first, if you alread get the wsdl file, you just can use
Service s = Service.create(wsdlURL, servcieName);
QName portName = new QName("http://demo.eric.org",
"stockQuoteReporterPort");
quoteReporter proxy = s.getPort(portName);
Thanks,
Willem.
Johnson, Eric wrote:
-----Original Message-----
From: Johnson, Eric [mailto:[EMAIL PROTECTED]
Sent: Wednesday, December 06, 2006 1:20 PM
To: [email protected]
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?