Webservice学习之——即时发布与定制发布
一、工具
myEclipse
tomcat 6.0 以上版本
二、即时发布
1、解压 axis-bin-1_4.zip
2、axis-bin-1_4.zip\axis-1_4\webapps\axis 把axis发布到tomcat服务器下,及拷贝到webapps目录下
axis 为列子项目
3、启动tomcat,访问如下即发布sucess

List 就是发布的接口位置。
5、编写java 代码,,提供方法。如下
把HelloWs.java 文件,.java 改为.jws 即 HelloWs.jws 拷贝到tomcat 项目axis下,重启服务器。
public class HelloWs {
public String Welcome(String name){
String result= "Welcome to learning WebSerice"+name;
return result;
}
}
6、访问 HelloWs.jws 如下,即SUCESS

<?xml version="1.0" encoding="UTF-8"?> -<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:intf="http://localhost:8080/axis/HelloWs.jws" xmlns:impl="http://localhost:8080/axis/HelloWs.jws" xmlns:apachesoap="http://xml.apache.org/xml-soap" targetNamespace="http://localhost:8080/axis/HelloWs.jws"> <!--WSDL created by Apache Axis version: 1.4 Built on Apr 22, 2006 (06:55:48 PDT)--> -<wsdl:message name="WelcomeRequest"> <wsdl:part name="name" type="xsd:string"/> </wsdl:message> -<wsdl:message name="WelcomeResponse"> <wsdl:part name="WelcomeReturn" type="xsd:string"/> </wsdl:message> -<wsdl:portType name="HelloWs"> -<wsdl:operation name="Welcome" parameterOrder="name"> <wsdl:input name="WelcomeRequest" message="impl:WelcomeRequest"/> <wsdl:output name="WelcomeResponse" message="impl:WelcomeResponse"/> </wsdl:operation> </wsdl:portType> -<wsdl:binding name="HelloWsSoapBinding" type="impl:HelloWs"> <wsdlsoap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/> -<wsdl:operation name="Welcome"> <wsdlsoap:operation soapAction=""/> -<wsdl:input name="WelcomeRequest"> <wsdlsoap:body use="encoded" namespace="http://DefaultNamespace" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </wsdl:input> -<wsdl:output name="WelcomeResponse"> <wsdlsoap:body use="encoded" namespace="http://localhost:8080/axis/HelloWs.jws" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </wsdl:output> </wsdl:operation> </wsdl:binding> -<wsdl:service name="HelloWsService"> -<wsdl:port name="HelloWs" binding="impl:HelloWsSoapBinding"> <wsdlsoap:address location="http://localhost:8080/axis/HelloWs.jws"/> </wsdl:port> </wsdl:service> </wsdl:definitions>
wsdl文件代码
测试代码:
public static void main(String[] args) {
//请求地址
String url="http://localhost:8080/axis/HelloWs.jws";
//、创建服务
Service service =new Service();
try {
//调用服务
Call call=(Call) service.createCall();
//服务地址
call.setTargetEndpointAddress(url);
//请求方法
call.setOperationName(new QName(url,"Welcome"));
//执行调用
String result=(String) call.invoke(new Object[]{" Mrwanggang"});
System.out.println(result);
} catch (ServiceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
即时发布完成
二、定制发布(WSDD)
1、编写java代码,,即要发布的方法。

public String Wel(String name){
return "欢迎您: "+name;
}
2、把编译后的文件(带包路径)拷贝到 (本地服务器)apache-tomcat-7.0.42\webapps\axis\WEB-INF\classes下


3、修改server-config.wsdd文件 (server-config.wsdd 据了解这个文件需要先写自己的.wsdd文件,然后在Axis\web-inf\下执行命令生成的)
java org.apache.axis.client.AdminClient*.wsdd 生成的。
写自己的.wsdd文件参照如下文件deploy.wsdd

重点关注
<!--配置服务接口-->
<service name="HelloWsdd" provider="java:RPC"> <!-- HelloWsdd 接口名称 -->
<parameter name="className" value="com.wg.wsdd.HelloWsdd"/> <!--接口文件位置-->
<parameter name="allowedMethods" value="*"/> <!--* 代表所有方法,也可单个指明,发布的方法-->
</service>
<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<globalConfiguration>
<parameter name="adminPassword" value="admin"/>
<parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
<parameter name="sendXsiTypes" value="true"/>
<parameter name="sendMultiRefs" value="true"/>
<parameter name="sendXMLDeclaration" value="true"/>
<parameter name="axis.sendMinimizedElements" value="true"/>
<requestFlow>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="session"/>
</handler>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="request"/>
<parameter name="extension" value=".jwr"/>
</handler>
</requestFlow>
</globalConfiguration>
<handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
<handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
<handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
<!--配置服务接口-->
<service name="HelloWsdd" provider="java:RPC">
<parameter name="className" value="com.wg.wsdd.HelloWsdd"/>
<parameter name="allowedMethods" value="*"/> <!--* 代表所有方法,也可单个指明
<beanMapping languageSpecificType="java:anni.Order" qname="ns1:Order" xmlns:ns1="BeanService"/>-->
</service> <transport name="http">
<requestFlow>
<handler type="URLMapper"/>
<handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
</requestFlow>
</transport>
<transport name="local">
<responseFlow>
<handler type="LocalResponder"/>
</responseFlow>
</transport>
</deployment>
3、拷贝 server-config.wsdd 到——>apache-tomcat-7.0.42\webapps\axis\WEB-INF 下即可。
4、重新启动服务器,访问 http://localhost:8080/axis/ 点击 List 如下即是你发布的位置

5、测试代码
*/
public static void main(String[] args) {
//请求地址
String url="http://localhost:8080/axis/services/HelloWsdd";
//、创建服务
Service service =new Service();
try {
//调用服务
Call call=(Call) service.createCall();
//服务地址
call.setTargetEndpointAddress(url);
//请求方法
call.setOperationName(new QName(url,"Wel"));
//执行调用
String result=(String) call.invoke(new Object[]{"Mrwangg"});
System.out.println(result);
} catch (ServiceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
定制发布完成
Webservice学习之——即时发布与定制发布的更多相关文章
- WebService学习之旅(三)JAX-WS与Spring整合发布WebService
Spring本身就提供了对JAX-WS的支持,有兴趣的读者可以研究下Spring的Spring-WS项目,项目地址: http://docs.spring.io/spring-ws/sites/1.5 ...
- WebService学习总结(六)--CXF 与Spring结合+tomcat发布
该项目在上文 WebService学习总结(四)--基于CXF的服务端开发 的基础上修改为spring上发布的webservice接口 1.新建web project 工程 2.导入spring ...
- WebService学习之旅(七)Axis2发布WebService的几种方式
前面几篇文章中简单的介绍了如何使用Axis2发布WebService及如何使用Axis2实现Web服务的客户端调用,本节將详细介绍Axis2发布WebService的几种方式. 一.使用aar包方式发 ...
- RabbitMQ学习总结 第四篇:发布/订阅 Publish/Subscribe
目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...
- JavaWeb和WebGIS学习笔记(三)——GeoServer 发布shp数据地图
系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...
- Java学习之道:Java项目打包发布
Java项目打包发布 如果只想发布为一个可执行的jar包,使用eclipse的Export功能就可以了 使用eclipse的Export功能,将项目中的所有package打包为一个pet.jar文件, ...
- Java WebService学习笔记 - Axis(一)
WebService 简介 实际开发中,很多系统都是基于历史遗留系统进行开发,有时,这些系统基于不同的语言,如C,C++,C#,java,PHP等等.为了实现历史系统的再利用,或向外部程序暴露调用接口 ...
- webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口
webService学习之路一:讲解了通过传统方式怎么发布及调用webservice webService学习之路二:讲解了SpringMVC和CXF的集成及快速发布webservice 本篇文章将讲 ...
- 关于wcf,webservice,webapi或者其他服务或者接口有什么区别 WCF、WebAPI、WebService之间的区别 【转载】HTTP和SOAP完全就是两个不同的协议 WebService学习总结(一)——WebService的相关概念
wcf,webservice采用的是rpc协议,这个协议很复杂,所以每次要传递.要校验的内容也很复杂,别看我们用的很简单,但实际是frame帮我们做掉了rpc生成.解析的事情webapi遵循是rest ...
随机推荐
- 简单实例一步一步帮你搞清楚MVC3中的路由以及区域
我们都知道MVC 3 程序的所有请求都是先经过路由解析然后分配到特定的Controller 以及 Action 中的,为什么这些知识讲完了Controller Action Model 后再讲呢?这个 ...
- bzoj 1924 [Sdoi2010]所驼门王的宝藏(构图,SCC,DP)
Description Input 第一行给出三个正整数 N, R, C. 以下 N 行,每行给出一扇传送门的信息,包含三个正整数xi, yi, Ti,表示该传送门设在位于第 xi行第yi列的藏宝宫室 ...
- Educational Codeforces Round 9 -- A - Grandma Laura and Apples
题意: 外祖母要卖苹果,(有很多但不知道数量),最终所有苹果都卖光了! 有n个人买苹果,如果那个人是half,他就买所有苹果的一半,如果那个人是halfplus,则他买当前苹果数量的一半,Laura还 ...
- Java 线程池详细介绍
根据摩尔定律(Moore’s law),集成电路晶体管的数量差不多每两年就会翻一倍.但是晶体管数量指数级的增长不一定会导致 CPU 性能的指数级增长.处理器制造商花了很多年来提高时钟频率和指令并行.在 ...
- tomcat运行问题解决方法
早上过来遇到一个非常奇怪的问题,运行一个新的项目,运行环境都没问题,可是在调试的时候,总是出错. 错误代码: log4j:WARN No appenders could be found for lo ...
- 教程-Delphi资源文件(全面分析于使用)
Delphi资源文件(全面分析之位图.光标.图标.AVI.JPEG.Wave) 几乎每个Windows应用程序都使用图标.图片.光标等资源.资源是程序的一部分,但是它是不可执行代码.下面我们就详细 ...
- Spring mvc Interceptor 解决Session超时配置流程
最近公司内部框架中对Session超时这一功能未实现,由于采用iframe结构,Session超时后,当点击左侧系统菜单时,会在iframe的右侧再次弹出登陆框. 该问题是由于没有设置拦截器造成. 添 ...
- Angular和jQuery的ajax请求的差别
近期项目中使用angular,结果发现后台没法获取參数,所以,略微研究了一下两者在发送ajax时的差别. 注意angular和jquery的ajax请求是不同的. 在jquery中,官方文档解释con ...
- 实现类似shared_ptr的引用计数
13.27 定义使用引用计数版本的HasPtr #include<iostream> #include<string> #include<new> using na ...
- hdu1047(Java)大数相加
题目大意:输入n组数据,每组数据中又有若干长度不大于100的整数,以0结束每组数据的输入,求每组中数据之和.每两组数据输入之间有一行空格,输出也是如此. Integer Inquiry Time Li ...