写一个Hello..
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;@WebService(targetNamespace = "http://XXXXX/client")
@SOAPBinding(style = SOAPBinding.Style.RPC)
public class Hello {
    @WebMethod
    public String sayHello(String name) {
        return "hello:" + name;
    }
}在写一个启动。。
import javax.xml.ws.Endpoint;public class StartService{
    public static void main(String[] args) ...{
        Endpoint.publish("http://localhost:8080/HelloService", new Hello());
    }
}然后输入http://localhost:8080/HelloService?wsdl   
看到一堆char, 就成功了。

解决方案 »

  1.   

    下面一个RPC方式调用的例子,调试通过了的.使用的时候注意防火墙拦消息.web.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
      <servlet>
        <servlet-name>XFireServlet</servlet-name>
        <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
        <load-on-startup>0</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>XFireServlet</servlet-name>
        <url-pattern>/services/*</url-pattern>
      </servlet-mapping>
    </web-app>services.xml
    <beans xmlns="http://xfire.codehaus.org/config/1.0"> <service>
    <name>HelloWorldService</name>
    <serviceClass>com.ws.demo.IHelloWorldService</serviceClass>
    <implementationClass>
    com.ws.demo.HelloWorldServiceImpl
    </implementationClass>
    <style>wrapped</style>
    <use>literal</use>
    <scope>application</scope>
    </service></beans>服务接口:
    package com.ws.demo;
    //Generated by MyEclipsepublic interface IHelloWorldService {

    public String example(String message);

    }
    实现:
    package com.ws.demo;
    //Generated by MyEclipsepublic class HelloWorldServiceImpl implements IHelloWorldService {

    public String example(String message) {
    return message;
    }

    }
    客户端调用代码:
    package com.ws.demo;import java.net.MalformedURLException;import org.codehaus.xfire.XFireFactory;
    import org.codehaus.xfire.client.XFireProxyFactory;
    import org.codehaus.xfire.service.Service;
    import org.codehaus.xfire.service.binding.ObjectServiceFactory;public class HelloWorldClient { public static void main(String[] args){
        Service srvcModel = new
        ObjectServiceFactory().create(IHelloWorldService.class);
        XFireProxyFactory factory =
           new XFireProxyFactory(XFireFactory.newInstance().getXFire());
        String helloWorldURL =
           "http://localhost:8080/HelloWorld/services/HelloWorldService";
        try {
           IHelloWorldService srvc = (IHelloWorldService)factory.create(srvcModel, helloWorldURL);
           String result = srvc.example("hello world");
           System.out.print(result);
        } catch (MalformedURLException e){
           e.printStackTrace();
        }
      }
    }
    如果运行不了在空间留言:我用的MyECLIPSE开发的.
      

  2.   


    强烈推荐这个,我最近也在做这个jax-ws是目前比较倡导的方式,RPC我认为是比较麻烦,而且和.net交换起来有点麻烦。
    http://www.netbeans.org/kb/60/websvc/jax-ws.html