I have developed a web service with a JAX-WS based front-end using CXF
2.1. Unfortunately, when I generate the client code using the java2ws
maven goal, I am not getting what I expect to.
The method in my web service takes a complex object (code below). I
would expect that the client code that gets generated would include a
proxy object for both my web service and the complex object that the
service call takes.
However, all I get is one client class that reference my SEI.
Is it assumed that I will separately repackage some of the contents of
my services .war file into a separate .jar file for use in the client
(that .jar file having the SEI and copies of related complex objects)?
Or am I doing something wrong?
Thanks in advance for any help.
-Anthony
Here is my SEI:
@WebService(name="WorkspaceService")
public interface WorkspaceService
{
@WebMethod(operationName="initializeWorkspace")
String[]
initializeWorkspace(@WebParam(name="workspaceConnectionInfo")
DBConnectionInfo workspace);
}
Here is the class that my web service method takes:
public class DBConnectionInfo
{
private String server;
private String port;
private String database;
public DBConnectionInfo()
{
}
public DBConnectionInfo(String server, String port, String database)
{
this.server = server;
this.port = port;
this.database = database;
}
public String getServer()
{
return server;
}
public String getPort()
{
return port;
}
public String getDatabase()
{
return database;
}
public void setServer(String server)
{
this.server = server;
}
public void setPort(String port)
{
this.port = port;
}
public void setDatabase(String database)
{
this.database = database;
}
}
Here is the client code that gets created:
public class WorkspaceServiceClient {
public static void main(String[] args) throws Exception {
QName serviceName = new
QName("http://services.centurylogix.com/","WorkspaceServiceService");
QName portName = new
QName("http://services.centurylogix.com/","WorkspaceServicePort");
Service service = Service.create(serviceName);
service.addPort(portName, SOAPBinding.SOAP11HTTP_BINDING,
"http://localhost:9090/WorkspaceServicePort");
com.centurylogix.services.WorkspaceService client =
service.getPort(portName,
com.centurylogix.services.WorkspaceService.class);
// Insert code to invoke methods on the client here
}
}