问个比较弱的问题,我刚接触webservice ,axis和axis2 有什么区别啊?

再帮我解释下axis吧
以及怎么试用 谢谢

Axis全称Apache eXtensible Interaction System,是apache组织下的一个开源项目,用来做webservice开发的,有java版的实现,也有c++版的实现,其前身最早是IBM的SOAP4J,后来捐给Apache后改名Apache SOAP,也就是支持SOAP1.1的那个版本,到现在的AXIS已经是第三代了,AXIS对Apache SOAP的改进有很多,比如用SAX代替以前的DOM,增加对WSDL的支持,支持SOAP1.2等等

使用axis很easy,在apache网站上把axis下载了后(最新版本1.2.1),把%AXIS_HOME%\webapps\axis整个目录copy到tomcat的webapps目录下面,启动tomcat,浏览器中输入http://localhost:8080/axis就可以了

上面说的只是axis运行起来了,要想布置自己的webservice,axis支持两种方法:一种是用JWS(Java Web Service),好处是只要有源码比如说Hello.java,把他改成Hello.jws后放到%TOMCAT_HOME%\webapps\axis目录下面就搞定,浏览器里面输入http://localhost:8080/axis/Hello.jws就可以了,不足的地方是能配置的地方有限(比如说Hello.java里面的所有public非static方法都会暴露),很多东西没办法弄;第二种方法就是使用wsdd(web service deploy description),这个就是在TOMCAT_HOME%\webapps\axis\WEB-INF目录下写一个deploy.wsdd和undeploy.wsdd文件,然后通过java org.apache.axis.client.AdminClient deploy.wsdd就搞定了,卸载这个webservice就用org.apache.axis.client.AdminClient undeploy.wsdd,客户端输入http://localhost:8080/axis/services/Hello就可以了

介绍了部署webservice的两种方法后,下面说说客户端的访问方式,也有两种,一种是通过axis实现的java里面的JAX-RPC进行动态调用,另外一种就是通过服务器端产生的wsdl文件利用WSDL2Java工具生成Client Stub后访问。通过JAX-RPC的比较简单,需要提供的有SOAP router URL,service namespace,operation name,operation parameter types,operation return types,看看下面这个例子就明白了:

public SOAPWrapper() {
String location = "http://localhost:8080/axis/services/BookService";
try {
Service service = new Service();
call = (Call)service.createCall();
call.setTargetEndpointAddress(new url(/location));
} catch (Throwable t) {
handleError("SOAPWrapper (constructor) had an Exception.",t);
}
} public void create(Book book) {
try {
call.removeAllParameters();
call.setOperationName("create");
call.addParameter("arg1",qn,ParameterMode.IN);
call.setReturnType(XMLType.AXIS_VOID);
call.invoke(new Object[] {book});
return;
} catch (Throwable t) {
handleError("SOAPWrapper (create) had an Exception.",t);
return;
}

}

程序中的Call和Service是对JAX-RPC中Call和Service的具体实现:org.apache.axis.client.Call implements javax.xml.rpc.Call,org.apache.axis.client.Service implements javax.xml.rpc.Service

第二种客户端的方法就是利用WSDL2Java产生Client stub后通过stub调用,WSDL2Java的操作对象是service所对应的wsdl文件,这个文件怎么产生呢?一种方法前面是由axis自动产生,如前面服务器端的配置所说,无论通过jws或是wsdd的方式,axis都会产生相应的wsdl;还有一种方式就是利用Java2WSDL对java源文件进行操作也可以产生相应的wsdl文件。
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-06-16
axis2是axis的新版本,但是重新设计过了,比axis方便很多

问个比较弱的问题,我刚接触webservice ,axis和axis2 有什么区别啊?
第二种客户端的方法就是利用WSDL2Java产生Client stub后通过stub调用,WSDL2Java的操作对象是service所对应的wsdl文件,这个文件怎么产生呢?一种方法前面是由axis自动产生,如前面服务器端的配置所说,无论通过jws或是wsdd的方式,axis都会产生相应的wsdl;还有一种方式就是利用Java2WSDL对java源文件进行操...

webservice 用axis好还是xfire好
XFire是codeHaus组织提供的一个开源框架,axis是apache开源组织的,单论功能二者是差不多的,不过基于apache的名声,找到的帮助资料肯定要多。。。个人推荐你用axis,最好是用axis2,axis1之前把条件都放在soapHeader里面,在axis2里面有了更好的表现。楼主可以参考http:\/\/dev.firnow.com\/course\/3_program...

java开发WebService服务端,用什么最好,各种技术的区别是什么
xfire\/cxf 性能比axis2要高,并且和spring整合起来也比较方便,而axis2支持更多的语言,性能相对于cxf要低,所以采用cxf这种方式实现了两个项目之间数据的传递,为了保证webservice的安全性我们采用了基于WS-Security标准的安全验证(使用CXF回调函数)。

...做什么的 它跟tomcat,跟web service都分别有什么关系?
Axis2是WebService的框架。是Axis1.x的替代品。与之类似的技术是XFire和CXF.tomcat是应用服务器。简单的理解:axis2实现了WebService。然后你可以在tomcat或者是Jetty上部署用Axis2实现的WebService程序。这个你可以看看SOA方面的书。最近工作用到这方面,我也是现学现卖。

webservice,axis2做服务端,客户端,获取参数总是为null,请问有人遇到...
应该是axis跟axis2的版本问题,你的服务端与客户端使用的版本不一样,建议使用SoapUI工具先测试一下,如果测试无问题就是客户端的问题了,之前也碰到过此类问题 解决如下:==》客户端编码方式,设置org.apache.axis.client.Call.setEncodingStyle(null),就可以获得了参数 ...

axis2 wsdl生成java文件 参数类型与wsdl定义的不一样
webservice存在跨平台、跨语言的调用,axis为了适应这些变化,对类型都做了封装处理。如果需要发布ws,安装帮助(网上的也行)一步步来,不要用axis通过wsdl自动生成的代码。当然,webservice在不同语言间互相调用,不是很友好 所以,用了就不要纠结这个问题。

如何正确地在Axis,Axis2和Apache CXF之间抉择
1、如果应用程序需要多语言的支持,Axis2 应当是首选了;2、如果应用程序是遵循 Spring 哲学路线的话,Apache CXF 是一种更好的选择,特别对嵌入式的 Web Services 来说;3、如果应用程序没有新的特性需要的话,就仍是用原来项目所用的框架,比如 Axis1,XFire,Celtrix 或 BEA 等等厂家自己的 Web...

如何选择WebService框架JWS,Axis2,XFire,CXF,Spring WS
2、Axis2是Apache下的一个重量级WebService框架,准确说它是一个Web Services \/ SOAP \/ WSDL 的引擎,是WebService框架的集大成者,它能不但能制作和发布WebService,而且可以生成Java和其他语言版WebService客户端和服务端代码。这是它的优势所在。但是,这也不可避免的导致了Axis2的复杂性,使用过的...

webservice axis2客户端问题
..”,你会看到CallbackHandler的一些方法,点击以“receiveResultxxx”开头的方法就是了,其中xxx是SyncNotifySPServiceService这个webservice类中的服务方法名。知道这个规律后,你就可以直接写出这些覆盖的方法了,不要依赖eclipse的快捷操作。当然了,你也可以自己直接在CallbackHandler代码中找。

用java 编写一个 基于Web Service的软件
1.编写类,跟普通JAVABEAN没什么区别。 2.配置文件 如果是要深层次的去理解WebServices还需努力,下面是我给你找的一个网上的例子作为参考: 使用XFire+Spring构建Web Service XFire是与Axis 2并列的新一代Web Service框架,通过提供简单的API支持Web Service各项标准协议,帮助你方便快速地开发Web Service应用。 相 对于...

相似回答