2012-11-27 10 views
7
**My Web service class** 

import javax.jws.WebMethod; 
import javax.jws.WebService; 

/** 
* @author edward 
* 
*/ 
@WebService 
public class HelloWeb { 

    @WebMethod 
    public String sayGreeting(String name) { 
     return "Greeting " + name + "....!"; 
    } 

} 

La mia classe Java ServerCome accedere al servizio web usando una normale classe java?

import javax.xml.ws.Endpoint; 

public class Server { 
    public static void main(String[] args) { 
     Endpoint.publish("http://localhost:9090/HelloWeb", new HelloWeb()); 
     System.out.println("Hello Web service is ready"); 
    } 
} 

Server funziona correttamente, e sono in grado di accedere al servizio utilizzando l'URL che restituisce WSDL code.But voglio accedere al server utilizzando unico URL in java.ho il seguente codice java del client.

client per accedere HelloWeb Servizio

import java.net.URL; 

import javax.xml.namespace.QName; 
import javax.xml.rpc.Service; 
import javax.xml.rpc.ServiceFactory; 

public class WebClient { 
    String wsdl = "http://172.21.1.65:9090/HelloWeb?wsdl"; 
    String namespace = "http://helloweb.com"; 
    String serviceName = "HelloWebService"; 

    QName serviceQN = new QName(namespace, serviceName); 

    { 
     try{ 

     ServiceFactory serviceFactory = ServiceFactory.newInstance(); 
     Service service = serviceFactory.createService(new URL(wsdl), serviceQN); 

     }catch (Exception e) { 

     } 
    } 
} 

risposta

1

provare questo, si noti che ho compilato e corse il server nel pacchetto di "test", è importante. Questo è solo un esempio di base per iniziare con JAX-WS.

package test; 

import java.net.URL; 

import javax.jws.WebMethod; 
import javax.jws.WebService; 
import javax.xml.namespace.QName; 
import javax.xml.ws.Service; 

public class WebClient { 

    @WebService(name = "HelloWeb", targetNamespace = "http://test/") 
    public interface HelloWeb { 
     @WebMethod 
     String sayGreeting(String name); 
    } 

    public static void main(String[] args) throws Exception { 
     Service serv = Service.create(new URL(
       "http://localhost:9090/HelloWeb?wsdl"), 
       new QName("http://test/", "HelloWebService")); 
     HelloWeb p = serv.getPort(HelloWeb.class); 
     System.out.println(p.sayGreeting("John")); 
    } 
} 
Problemi correlati