加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

axis,webservice初级指南

发布时间:2020-12-17 02:51:09 所属栏目:安全 来源:网络整理
导读:由于WEBSERVICE创建步骤有些复杂,帮创建一个简单的webservice例子,来帮助记忆这些步骤! 1,新建一个WEB工程:axistest.并引入axis相关的JAR包,(发现如果仅仅是这样做,会出错,建议到AXIX的LIB目录把所有的JAR包COPY到工程的LIB下,这时webservice会出现空瓶子的

由于WEBSERVICE创建步骤有些复杂,帮创建一个简单的webservice例子,来帮助记忆这些步骤!
1,新建一个WEB工程:axistest.并引入axis相关的JAR包,(发现如果仅仅是这样做,会出错,建议到AXIX的LIB目录把所有的JAR包COPY到工程的LIB下,这时webservice会出现空瓶子的图标.OK),再将axis webapps/axis/WEB-INF目录下的WEB.XML文件COPY到相应工程的WEB-INF目录下.
2,在工程中新建一个包test.server,建一个Hello.java程序:代码如下
package test.server;
public class Hello
{
?public String sayHello(String arg)
?{
??return "你好!"+arg;
?}
}
然后打开TOMCAT,部署工程
3,新建一个deploy.wsdd文件放在工程的web-inf目录下,文件内容如下:
<deployment xmlns="http://xml.apache.org/axis/wsdd/"

??????????? xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

?<service name="Hello" provider="java:RPC">

? <parameter name="className" value="test.server.Hello"/>

? <parameter name="allowedMethods" value="sayHello"/>

?</service>

</deployment>
建好后,打开DOS命令窗口,转到相应的web-inf目录,输入如下命令:java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -

lhttp://localhost:8080/axis/servlet/AxisServlet deploy.wsdd 若命令执行成功,会在TOMCAT的相应工程的WEB-INF目录下生成server-config.wsdd文件.然后打开IE浏览器,输入http://localhost:8080/axistest/services 后,会出现三个链接,点击最下面的那个链接.可以看到Hello.java的WSDL文件
4.建立一个.BAT文件,文件内容如下:
? set Axis_Lib=H:/hp/webservices/axis-bin-1.4.zip/axis-bin-1_4/axis-1_4/webapps/axis/WEB-INF/lib
? set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
? set Output_Path=H:/hp/project/axistest/src
? set Package=test.client
? %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package%? http://localhost:8080/axis/services/Hello?wsdl
? 同样打开DOS命令窗口,把BAT文件拖入窗口中,回车.会在H:/hp/project/axistest/src/test/client生成四个JAVA文件
? 分别如下Hello_PortType.java,HelloService.java,HelloServiceLocator.java,HelloSoapBindingStub.java
5测试:在test.client包下建一个Main.java类:代码如下
package test.client;

public class Main
{
?public static void main(String[] args)throws Exception
?{
??HelloService service=new HelloServiceLocator();
??Hello_PortType hello=service.getHello();
??System.out.println(hello.sayHello("hp"));
?}
}
先启动TOMAT,再运行,会打印出
你好!hp?

也可以用这样的方式调用Webservice,以下内容是转至别人的BLOG:http://blog.csdn.net/ronghao100/archive/2005/06/08/390530.aspx

HelloClient.java

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class HelloClient
{
?? public static void main(String [] args) throws Exception {

?????? String endpoint = "http://localhost:" +"8080"+ "/axis/services/HelloWorld";//注意!差别仅仅在这里!!

?????? Service? service = new Service();
?????? Call???? call??? = (Call) service.createCall();
?????? call.setTargetEndpointAddress( new java.net.URL(endpoint) );
??????? call.setOperationName("sayHello"? );

???????? String res = (String) call.invoke( new Object[] {} );

???????????????????????? System.out.println( res );?? }}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读