- 浏览: 175026 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
滁筱梦:
出现:
Found SAAJ API ( javax. ...
axis—安装 -
滁筱梦:
lvxin006 写道请问哈为什么我的老是报这样的错啊?exc ...
在axis中通过wsdd文件发布和卸载webservice -
zhangyi462002:
firerdl 写道请问下 我配置<mailet mat ...
用JAMES实现自己的邮件服务器 -
jkleeo:
博主的WS的文章写的很好啊...
开张了!开张了! -
kaihea:
classpath和类路径配好,就OK了,不过还是报一个警告, ...
axis—安装
在axis中通过wsdd文件发布和卸载webservice
在上一篇<>中我介绍了一种简单webservice的发布方式-jws。
这种发布方式非常的敏捷!但有它的局限性—你必须知道webservice的源代码。有时候这个的确很让人郁闷!比如:的webservice被打成了一个jar包,你并没有源代码。或者这个webservice根本就不是你的公司开发的。这时你发布这个webservice就会变得很困难。axis针对这种情况提供了wsdd文件的方式来发布和撤销webservice。
现在我们来通过一个wsdd文件来对wsdd有个初步的认识。注意:在开始下面的步骤前请安装axis.具体安装请看上一篇
- <deployment xmlns="http://xml.apache.org/axis/wsdd/"
- xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
- <service name="MyService" provider="java:RPC">
- <parameter name="className" value="samples.userguide.example3.MyService"/>
- <parameter name="allowedMethods" value="*"/>
- service>
- deployment>
最外面的元素告诉我们这是一个wsdd发布项,并且定义了java的命名空间,service 元素定义了我们的service.java:RPC定义了axis的provider。parameter name定义了webservice类名及所在包的位置。allowedMethods value等于*,表示MyService的所有方法都可以被调用。
了解了wsdd文件,我们来认识一个非常有用的工具AdminClient.正式通过它我们才能通过wsdd文件发布我们的应用。它的全路径是org.apache.axis.client.AdminClient,在axis.jar包中。在使用这个工具前我们必须把相应的jar包加入classpath。如:axis.jar..。如果你做了<>的练习则这一步就不用再做了。
我们首先进入webservice所在源文件的目录找到deploy.wsdd文件。然后键入如下命令:
java org.apache.axis.client.AdminClient deploy.wsdd
(如果提示错误,请检查你是否将必须的jar包加入classpath)
如果成功则会显示 :
- <Admin>Done processingAdmin>
下面来解释AdminClient 所做的工作。AdminClient 首先会在axis.jar所在应用下的WEB-INF文件夹下创建一个webservice配置文件server-config.wsdd,并且根据wsdd文件的配置将我们的webservice加入到这个配置文件中。如果server-config.wsdd已经存在则不会创建,会修改这个文件将新的service 配置到server-config.wsdd文件中。
如图:
- <!---->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="sendMultiRefs" value="true"/>
- <parameter name="disablePrettyXML" value="true"/>
- <parameter name="adminPassword" value="admin"/>
- <parameter name="attachments.Directory" value="C:\tomcat5\webapps\axis\WEB-INF\attachments"/>
- <parameter name="dotNetSoapEncFix" value="true"/>
- <parameter name="enableNamespacePrefixOptimization" value="false"/>
- <parameter name="sendXMLDeclaration" value="true"/>
- <parameter name="sendXsiTypes" value="true"/>
- <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
- <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="AdminService" provider="java:MSG">
- <parameter name="allowedMethods" value="AdminService"/>
- <parameter name="enableRemoteAdmin" value="false"/>
- <parameter name="className" value="org.apache.axis.utils.Admin"/>
- <namespace>http://xml.apache.org/axis/wsdd/namespace>
- service>
- <service name="Version" provider="java:RPC">
- <parameter name="allowedMethods" value="getVersion"/>
- <parameter name="className" value="org.apache.axis.Version"/>
- service>
- >
- <service name="MyService" provider="java:RPC">
- <parameter name="allowedMethods" value="*"/>
- <parameter name="className" value="samples.userguide.example3.MyService"/>
- service>
- <transport name="http">
- <requestFlow>
- <handler type="URLMapper"/>
- <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
- requestFlow>
- <parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>
- <parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
- <parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>
- <parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/>
- <parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
- <parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
- transport>
- <transport name="local">
- <responseFlow>
- <handler type="LocalResponder"/>
- responseFlow>
- transport>
- deployment>
我们来访问一下看看:
java samples.userguide.example3.Client -lhttp://localhost:8080/axis/services/MyService "test me!"
You typed : test me!
返回正确,部署成功!
如果你要卸载一个webservice也很简单!我们首先定义一个undeploy.wsdd
- <undeployment xmlns="http://xml.apache.org/axis/wsdd/">
- <service name="MyService"/>
- undeployment>
进入webservice所在源文件的目录找到undeploy.wsdd文件。然后键入如下命令:
java org.apache.axis.client.AdminClient undeploy.wsdd
(如果提示错误,请检查你是否将必须的jar包加入classpath)
如果成功则会显示 :
- <Admin>Done processingAdmin>
在看server-config.wsdd已经删除了原来service的定义
<!---->
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"></deployment>
- <?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="sendMultiRefs" value="true"/>
- <parameter name="disablePrettyXML" value="true"/>
- <parameter name="adminPassword" value="admin"/>
- <parameter name="attachments.Directory" value="C:\tomcat5\webapps\axis\WEB-INF\attachments"/>
- <parameter name="dotNetSoapEncFix" value="true"/>
- <parameter name="enableNamespacePrefixOptimization" value="false"/>
- <parameter name="sendXMLDeclaration" value="true"/>
- <parameter name="sendXsiTypes" value="true"/>
- <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
- <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="AdminService" provider="java:MSG">
- <parameter name="allowedMethods" value="AdminService"/>
- <parameter name="enableRemoteAdmin" value="false"/>
- <parameter name="className" value="org.apache.axis.utils.Admin"/>
- <namespace>http://xml.apache.org/axis/wsdd/</namespace>
- </service>
- <service name="Version" provider="java:RPC">
- <parameter name="allowedMethods" value="getVersion"/>
- <parameter name="className" value="org.apache.axis.Version"/>
- </service>
- <!--
- 原来的service的定义已经删除!
- -->
- <transport name="http">
- <requestFlow>
- <handler type="URLMapper"/>
- <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
- </requestFlow>
- <parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>
- <parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
- <parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>
- <parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/>
- <parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
- <parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
- </transport>
- <transport name="local">
- <responseFlow>
- <handler type="LocalResponder"/>
- </responseFlow>
- </transport>
- </deployment>
看是不是很简单,不仅省去了ctrl+c和ctrl+v,还防止了手动配置出错。一举两得岂不快哉!<o:p></o:p>
评论
我能肯定是那些jar包加入classpath配置没起作用,多个jar包配置我也用;隔开了啊,什么原因呢?
java org.apache.axis.client.AdminClient deploy.wsdd
(如果提示错误,请检查你是否将必须的jar包加入classpath)
这里改正一下,键入:
java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient deploy.wsdd
切记!!!
不用手写了吧?
难道手写更有优势?
1、启动你的应用服务器(当然是部署好axis后)
2、进入samples\userguide\example3目录
创建服务:
java org.apache.axis.client.AdminClient -lhttp://localhost:80/axis/services/AdminService deploy.wsdd
调用服务:
java samples.userguide.example3.Client -lhttp://localhost:80/axis/services/MyService "test me!"
删除服务:
java org.apache.axis.client.AdminClient -lhttp://localhost:80/axis/services/AdminService undeploy.wsdd
(具体IP及端口根据本地实际情况进行修改)

package samples.userguide.example3;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import org.apache.axis.utils.Options;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
public class Client
{
public static void main(String [] args)
{
try {
Options options = new Options(args);
String endpointURL = options.getURL();
String textToSend;
args = options.getRemainingArgs();
if ((args == null) || (args.length < 1)) {
textToSend = "<nothing>";
} else {
textToSend = args[0];
}
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpointURL) );
call.setOperationName( new QName("http://example3.userguide.samples", "serviceMethod") );
call.addParameter( "arg1", XMLType.XSD_STRING, ParameterMode.IN);
call.setReturnType( org.apache.axis.encoding.XMLType.XSD_STRING );
String ret = (String) call.invoke( new Object[] { textToSend } );
System.out.println("You typed : " + ret);
} catch (Exception e) {
System.err.println(e.toString());
}
}
}
是传参数进来才能运行吧!!楼主说进入到这个目录下运行 java org.apache.axis.client.AdminClient deploy.wsdd,就会产生service-config.xml文件,我因为我是新学这个东西,不知道要怎样传参数(或是否需要传参数,传什么样的参数),我运下了产生了如下异常(各位给几个指点吧):
minClient deploy.wsdd
Processing file deploy.wsdd
Exception: AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.net.ConnectException: Connection refused: connect
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:java.net.ConnectException: Conne
ction refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:507)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSoc
ketFactory.java:153)
at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSoc
ketFactory.java:120)
at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:1
91)
at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.ja
va:404)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrateg
y.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:1792)
at org.apache.axis.client.AdminClient.process(AdminClient.java:439)
at org.apache.axis.client.AdminClient.process(AdminClient.java:404)
at org.apache.axis.client.AdminClient.process(AdminClient.java:410)
at org.apache.axis.client.AdminClient.process(AdminClient.java:320)
at org.apache.axis.client.AdminClient.main(AdminClient.java:463)
{http://xml.apache.org/axis/}hostname:PA-A-zjming
楼上,你的解决办法:
java org.apache.axis.client.AdminClient -lhttp://地址:端口/context模块/services/AdminService deploy.wsdd
java org.apache.axis.client.AdminClient -lhttp://地址:端口/context模块/services/AdminService deploy.wsdd
Processing file delopy.wsdd
Exception: AxisFault
faultCode: {http://xml.apache.org/axis/}HTTP
faultSubcode:
faultString: (404)/axis/services/AdminService
faultActor:
faultNode:
faultDetail:
{}:return code: 404
<html><head><title>Apache Tomcat/5.5.16 - Error report</tit
le><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;ba
ckground-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;
color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Ari
al,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-f
amily:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-famil
y:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:
Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color :
black;}A.name {color : black;}HR {color : #525D76;}--></style> </hea
d><body><h1>HTTP Status 404 - /axis/services/AdminService</h1&
gt;<HR size="1" noshade="noshade"><p><b>ty
pe</b> Status report</p><p><b>message</b> <u>
;/axis/services/AdminService</u></p><p><b>description<
;/b> <u>The requested resource (/axis/services/AdminService) is not ava
ilable.</u></p><HR size="1" noshade="noshade"
><h3>Apache Tomcat/5.5.16</h3></body></html>
{http://xml.apache.org/axis/}HttpErrorCode:404
相关推荐
在Axis1.4中,可以通过`wsdd2java`工具,根据Java类自动生成对应的WSDD文件。这一步骤允许开发者快速定义服务的行为和结构,而无需手动编写XML配置。 3. **生成测试类**: 使用Axis1.4,可以利用`java2wsdl`工具...
5. **配置Axis**:在SpringBoot的配置文件`application.properties`或`application.yml`中,我们可以配置Axis的启动和端口等信息。 6. **编写WSDL**:如果还没有WSDL,我们可以手动编写或使用Axis工具从接口生成。...
用wsdd(Web Services Deployment Descriptor)方式发布WebService.doc
本文详细介绍了使用Apache Axis发布和管理Web服务的方法,包括即时发布和定制发布两种方式,以及WSDD文件的高级配置选项。此外,还讨论了如何传递JavaBean、自定义异常以及文件等内容。通过这些知识点的学习,开发者...
4. **发布Web服务**:在Spring Boot的初始化或启动过程中,使用Axis的API加载WSDD文件并发布Web服务。这通常在`@PostConstruct`注解的方法中完成。 5. **配置Spring Boot**:确保Spring Boot应用程序可以正确地暴露...
本文档旨在详细介绍如何使用Axis 1.4框架在Java环境下发布WebService接口。Axis是一个由Apache组织开发的开源项目,它提供了用于实现基于SOAP协议的Web服务的工具和库。本文将通过具体的步骤演示如何利用Eclipse集成...
标题中的“Axis和WebService配置使用之Hello”表明我们将探讨如何在Java环境中使用Axis库来创建和使用Web服务,实现一个简单的“Hello World”示例。 Axis是一个开源的Java SOAP(简单对象访问协议)工具包,它允许...
以下将详细讲解如何在Spring Boot应用中集成Axis1.4以及使用wsdd文件发布Web服务。 首先,了解 Axis1.4:Axis 是一个开源的Java Web服务框架,它允许开发者快速地创建和部署Web服务。Axis1.4是该框架的一个较老版本...
wsdd文件是WebService的描述文件,用于定义WebService的接口和实现。它是Axis框架中的一部分,用于描述WebService的结构和行为。wsdd文件可以手动编写,也可以使用Axis工具来生成。 第四步:部署WebService 使用...
在本主题中,我们将深入探讨如何使用WSDD(Web Services Deployment Descriptor)文件来部署一个WebService到服务器上,以及与之相关的`web.xml`配置文件。 **什么是WSDD?** WSDD,全称Web Services Deployment ...
通过本指南,你将对 Axis WebService 开发有深入的理解,能够熟练地创建、发布和调试 WebServices,同时也能解决跨平台调用中可能遇到的问题。在实际工作中,结合 Axis 的各种工具和特性,你将能够构建出高效、稳定...
3. **创建WebService**:在Spring Boot应用中,你可以通过Axis1.4创建一个WebService。首先,定义一个Java类,包含你想要公开的方法。然后,使用Axis的工具生成服务端点接口和服务类。 4. **配置Spring Boot**:...
- **工具**:Axis提供了一系列的命令行工具,如`wsdl2java`,用于生成Java代码和客户端代理,以及`deploy.wsdd`文件,用于配置和部署Web服务。 在实际开发中,理解并掌握Axis的使用对于构建分布式系统至关重要。...
总的来说,Axis1.4是Web服务开发的一个强大工具,通过本教程提供的文件和说明,开发者可以快速掌握Web服务的开发流程,无论是在服务端发布还是客户端调用,都能得心应手。在深入学习和实践过程中,还会涉及到WS-...
【使用myEclipse,tomcat 和Axis发布webService】教程 在IT行业中,Web服务是一种标准的通信方式,使得不同的应用程序之间能够交换数据。本文将详细介绍如何使用myEclipse集成开发环境,Apache Tomcat服务器以及...
5. **在`deploy.wsdd`中声明服务**: 在`deploy.wsdd`文件中,你需要添加服务声明和服务端点接口(SEI)的映射,以便Axis1知道如何暴露你的服务。 6. **部署服务**: 使用`deploy.bat`脚本部署服务。这个批处理文件...
可以通过编写特定的Handler或者在Wsdd文件中配置异常处理策略来实现。 **七、传递文件信息** Axis支持文件作为Web服务调用的输入和输出。这通常涉及到MIME多部分编码,使文件能够以二进制形式安全地在网络上传输...
- **文件路径**:假设Java源代码存放在`D:\workspace\test\`目录,而Axis相关包文件则位于`D:\workspace\test\WEB-INF`目录。 - **编写wsdd文件**: - `deploy.wsdd`文件是用于部署Web服务的核心配置文件。 - ...
在这个例子中,我们关注的是使用Apache Axis1.4库来创建和消费Web服务。Apache Axis是Java社区中最常用的Web服务工具之一,它提供了用于生成和部署Web服务的框架。 在Java中,Web服务通常通过SOAP(Simple Object ...
- 在Tomcat环境中发布Web服务,需要两个配置文件:`web.xml`和`server-config.wsdd`。 - `web.xml`是Web应用的配置文件,用来声明`server-config.wsdd`,后者是Web服务的发布配置。 - `server-config.wsdd`定义了...