I have the following code that used to work in JBoss 4.0.4GA. After port to 
4.2, server complained about "context roots being different, so I added 
@WebContext to all web services. Now server is fine, I can see the WSDL, but I 
cannot connect to the server using a Java client. 


  | @WebService
  | @SOAPBinding(style=Style.RPC)
  | public interface Calculator extends Remote
  | {
  |   @WebMethod int add(int x, int y);
  | 
  |   @WebMethod int subtract(int x, int y);
  | }
  | 


  | @Stateless
  | 
@WebService(name="CalculatorService",serviceName="CalculatorService",endpointInterface="org.bilgidata.kitapdemo.service.Calculator")
  | @WebContext(contextRoot="/ggServices")
  | public class CalculatorBean implements Calculator
  | {
  |   public int add(int x, int y)
  |   {
  |     System.out.println("inside add");        
  |     return x + y;
  |   }
  | 
  |   public int subtract(int x, int y)
  |   {
  |     System.out.println("inside subtract");
  |     return x - y;
  |   }    
  | }
  | 


  | public class Client
  | {
  |   public static void main(String[] args) throws Exception
  |   {
  |     URL url = new 
URL("http://localhost:8080/ggServices/CalculatorBean?wsdl";);
  |     QName qname = new 
QName("http://localhost:8080/ggServices/CalculatorBean";,
  |                             "CalculatorService");
  | 
  |     ServiceFactory factory = ServiceFactory.newInstance();
  |     Service service = factory.createService(url, qname);
  | 
  |     Calculator calculator = (Calculator) service.getPort(Calculator.class);
  | 
  |     System.out.println("1 + 1 = " + calculator.add(1, 1));
  |     System.out.println("1 - 1 = " + calculator.subtract(1, 1));
  |   }
  | }
  | 

The WSDL looks like


  | <definitions name='CalculatorService' 
targetNamespace='http://service.kitapdemo.bilgidata.org/' 
xmlns='http://schemas.xmlsoap.org/wsdl/' 
xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' 
xmlns:tns='http://service.kitapdemo.bilgidata.org/' 
xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
  |  <types></types>
  |  <message name='Calculator_subtract'>
  |   <part name='arg0' type='xsd:int'></part>
  |   <part name='arg1' type='xsd:int'></part>
  |  </message>
  |  <message name='Calculator_add'>
  |   <part name='arg0' type='xsd:int'></part>
  |   <part name='arg1' type='xsd:int'></part>
  |  </message>
  |  <message name='Calculator_addResponse'>
  |   <part name='return' type='xsd:int'></part>
  |  </message>
  |  <message name='Calculator_subtractResponse'>
  |   <part name='return' type='xsd:int'></part>
  |  </message>
  |  <portType name='Calculator'>
  |   <operation name='add' parameterOrder='arg0 arg1'>
  |    <input message='tns:Calculator_add'></input>
  |    <output message='tns:Calculator_addResponse'></output>
  |   </operation>
  |   <operation name='subtract' parameterOrder='arg0 arg1'>
  |    <input message='tns:Calculator_subtract'></input>
  |    <output message='tns:Calculator_subtractResponse'></output>
  |   </operation>
  |  </portType>
  |  <binding name='CalculatorBinding' type='tns:Calculator'>
  |   <soap:binding style='rpc' 
transport='http://schemas.xmlsoap.org/soap/http'/>
  |   <operation name='add'>
  |    <soap:operation soapAction=''/>
  |    <input>
  |     <soap:body namespace='http://service.kitapdemo.bilgidata.org/' 
use='literal'/>
  |    </input>
  |    <output>
  |     <soap:body namespace='http://service.kitapdemo.bilgidata.org/' 
use='literal'/>
  |    </output>
  |   </operation>
  |   <operation name='subtract'>
  |    <soap:operation soapAction=''/>
  |    <input>
  |     <soap:body namespace='http://service.kitapdemo.bilgidata.org/' 
use='literal'/>
  |    </input>
  |    <output>
  |     <soap:body namespace='http://service.kitapdemo.bilgidata.org/' 
use='literal'/>
  |    </output>
  |   </operation>
  |  </binding>
  |  <service name='CalculatorService'>
  |   <port binding='tns:CalculatorBinding' name='CalculatorServicePort'>
  |    <soap:address 
location='http://127.0.0.1:8080/ggServices/CalculatorBean'/>
  |   </port>
  |  </service>
  | </definitions>
  | 


  | Exception in thread "main" java.lang.IllegalArgumentException: Cannot 
obtain wsdl service: 
{http://localhost:8080/ggServices/CalculatorBean}CalculatorService
  |     at 
org.jboss.ws.metadata.builder.jaxrpc.JAXRPCClientMetaDataBuilder.buildMetaDataInternal(JAXRPCClientMetaDataBuilder.java:171)
  |     at 
org.jboss.ws.metadata.builder.jaxrpc.JAXRPCClientMetaDataBuilder.buildMetaData(JAXRPCClientMetaDataBuilder.java:133)
  |     at 
org.jboss.ws.metadata.builder.jaxrpc.JAXRPCClientMetaDataBuilder.buildMetaData(JAXRPCClientMetaDataBuilder.java:85)
  |     at 
org.jboss.ws.core.jaxrpc.client.ServiceImpl.<init>(ServiceImpl.java:111)
  |     at 
org.jboss.ws.core.jaxrpc.client.ServiceFactoryImpl.createService(ServiceFactoryImpl.java:157)
  |     at 
org.jboss.ws.core.jaxrpc.client.ServiceFactoryImpl.createService(ServiceFactoryImpl.java:128)
  |     at org.bilgidata.kitapdemo.service.Client.main(Client.java:18)
  | 

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4095525#4095525

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4095525
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to