KK

Kim-'s-Blog.Object-Everything.I'm POJO.

.紀-錄.爲了忘卻的記憶..真的勇士,要敢于直面遇到的問題,敢于正視繁雜的原碼......在實踐中積累!

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  74 Posts :: 1 Stories :: 70 Comments :: 0 Trackbacks
一、Axis安装

    1、环境 J2SE SDK 1.3 or 1.4:我使用 1.4.2
    Servlet Container:我使用的Tomcat 5.0

  2、到 http://ws.Apache.org/axis/ 网站下载Axis安装包

  3、解压缩安装包,
              将Axis UNZIP_PATH\Axis-version\webapps下的Axis包拷贝到 
              TOMCAT_HOME\webapps\下,以下约定Axis_HOME为该TOMCAT_HOME\webapps\axis目录

  4、启动tomcat, 访问http://localhost:8080/axis 检查安装是否成功,本機為http://localhost:7777/axis

  5、以上步骤执行成功,可以开发webservice例子了

二、编写DII(Dynamic Invocation Interface )方式web服务

  1.编写服务端程序SayHello.java

        public class SayHello {
            public String getName(String name) {
                return "hello "+name;
            }
        }
        2、将源码拷贝到Axis_HOME下,重命名为SayHello.jws

  3、访问连接http://localhost:7777/axis/SayHello.jws?wsdl,页面显示Axis自动生成的wsdl

  4、编写访问服务的客户端 SayHelloClient.java
        import org.apache.axis.client.Call;
        import org.apache.axis.client.Service;
        import javax.xml.namespace.QName;
        import javax.xml.rpc.ServiceException;
        import java.net.MalformedURLException;
        import java.rmi.RemoteException;

        public class SayHelloClient {
            public static void main(String[] args) {
                try {
                    String endpoint = "http://localhost:7777/axis/SayHello.jws";
                    Service service = new Service();
                    Call call = null;
                    call = (Call) service.createCall();
                    call.setOperationName(new QName("http://localhost:7777/axis/SayHello.jws",
                    "getName"));
                    call.setTargetEndpointAddress(new java.net.URL(endpoint));
                    String ret = (String) call.invoke(new Object[] {"Kim"});
                    System.out.println("return value is " + ret);
                }
                catch (Exception ex) {
                    ex.printStackTrace();
                }
            }
        }
5.運行該Java文件
顯示return value is hello Kim
OK!

另:
Axis支持三种web service的部署和开发,分别为:

  1、Dynamic Invocation Interface ( DII)

  2、Stubs方式

  3、Dynamic Proxy方式

posted on 2006-12-18 14:52 Kim' 阅读(721) 评论(2)  编辑  收藏

Feedback

# re: Axis編寫最簡單的WebService SOAP[未登录] 2009-08-12 16:11 cloud
你好!請問一下:若是輸入中文
String ret = (String) call.invoke(new Object[] {"中文"});

會變成亂碼,要如何解決呢?  回复  更多评论
  

# re: Axis編寫最簡單的WebService SOAP 2009-08-21 14:39 Kim'
我现在webservice用的CXF,
Axis
可以在发消息前对中文进行Encode..比如Unicode
中文
\u4e2d\u6587
服务器再解析之
这样应该可以解决  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航:
 
jj