I'm a bit confused what is going wrong here. I have a simple class that can call my webservice by creating a javax.xml.ws.Service and getting a handle to my endpoint interface. This works fine if I call this class from a servlet.
I know annotated this class so that it would show up as a JMX component and I'm trying to call the test method (echo) through the JMX console. When I try this, however, I'll get an error back...
org.jboss.ws.WSException: Cannot load java type: com.foobar.edsf.example.ejb.webservices.jaxws.TestEchoExample
I'm not sure why I'm getting such an error. Apparently JBoss is trying to make this class in the package jaxws? (since I don't have that package named anywhere in my examples).
Here is the class I'm trying to use as a JMX component...
package com.foobar.edsf.example.client;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jboss.annotation.ejb.Management;
import com.foobar.edsf.example.ejb.webservices.Echo;
@org.jboss.annotation.ejb.Service(objectName="examples:service=TestEcho")
@Management(ITestEcho.class)
public class TestEchoExample implements ITestEcho {
private static Log log = LogFactory.getLog(TestEchoExample.class);
public String echo(String s) {
String retVal = "Failed";
try {
Service service = Service.create(
new URL("http://localhost:8080/edsf-1-edsf-examples-ejb/EchoBean?wsdl"),
new QName("http://webservices.ejb.example.edsf.foobar.com/", "EchoBeanService") );
Echo echo = service.getPort(Echo.class);
retVal = echo.testEchoExample(s);
log.info("In TestEcho client. Echo response with call to echo: "+ retVal);
} catch (Exception e) {
e.printStackTrace();
retVal = e.toString();
}
return retVal;
}
}
[/CODE]