【岁月留声(Java)】Axis1.4 操作文档

1.将Axis项目中,webapps目录下的axis文件夹部署到Tomcat的webapps目录下

这里写图片描述

2.我们可以看到,axis\WEB-INF\web.xml中配置信息大致如下:

<listener>
      <listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class>
      </listener>
      <servlet>
                <servlet-name>AxisServlet</servlet-name>
                <display-name>Apache-Axis Servlet</display-name>
                <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
      </servlet>
      <servlet>
                <servlet-name>AdminServlet</servlet-name>
                <display-name>Axis Admin Servlet</display-name>
                <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>
                <load-on-startup>100</load-on-startup>
      </servlet>
      <servlet>
                <servlet-name>SOAPMonitorService</servlet-name>
                <display-name>SOAPMonitorService</display-name>
                <servlet-class>org.apache.axis.monitor.SOAPMonitorService</servlet-class>
                <init-param>
                         <param-name>SOAPMonitorPort</param-name>
                         <param-value>5001</param-value>
                </init-param>
                <load-on-startup>100</load-on-startup>
      </servlet>
      <servlet-mapping>
                <servlet-name>AxisServlet</servlet-name>
                <url-pattern>/servlet/AxisServlet</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
                <servlet-name>AxisServlet</servlet-name>
                <url-pattern>*.jws</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
                <servlet-name>AxisServlet</servlet-name>
                <url-pattern>/services/*</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
                <servlet-name>SOAPMonitorService</servlet-name>
                <url-pattern>/SOAPMonitor</url-pattern>
      </servlet-mapping>
  ...    

3.编写WS服务端

public class HelloServer {
       public HelloServer()
       {
              System.out.println("--构造函数--");
       }
       public int add(int a, int b)
       {
              return a + b;
       }
       public String sayHello(String name)
       {
              return "Hello, " + name + "!";
       }
}

方式1:最简单的方法
(1) 直接将HelloServer.java文件拷贝到Tomcat\webapps\axis目录下,然后改名为:HelloServer.jws

注意:

  1. HelloService.java不能放在pageage中;
  2. 有可能需要将jdk\lib\tools.jar放到axis\WEB-INF\lib目录下;

(2) 可以到浏览器中输入:

 http://localhost:8088/axis/HelloServer.jws?wsdl查看部署信息

方式2:最常用的方法
(1) 将

HelloServer.java

放到pageage:cn.koma.ws包中(可以新建一个普通的java项目,然后将axis的一些相关jar导入进来)

(2) 编写deploy.wsdd描述文件:

<deployment xmlns="http://xml.apache.org/axis/wsdd/"
         xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
         <service name="HelloServer" provider="java:RPC">
                   <parameter name="className"                       value="cn.koma.ws.HelloServer" />
                   <parameter name="allowedMethods"      value="*" />
                   <!-- 这个service的范围:request(默认)、session、application -->
                   <parameter name="scope"                               value="application" />
         </service>
</deployment>

(3) 通过axis提供的客户端工具org.apache.axis.client.AdminClient,将HelloServer部署到Tomcat服务器,默认情况下axis认为axis目录是:http://localhost:8080/axis,可以传递-p 指定其它端口
表示:ws部署描述文件是:deploy.wsdd,服务器端口是:8088
运行后,可以看到Tomcat\webapps\axis\WEB-INF目录下多了一个server-config.wsdd文件,打开后可以看到我们刚才自己写的deploy.wsdd的内容也包含在了其中。

(4) 将编译后的HelloServer.class放到Tomcat\webapps\axis\WEB-INF\classes目录下

(5) 在浏览器中输入:http://localhost:8088/axis/services/HelloServer?wsdl

4.编写客户端访问WS服务

package cn.koma.ws;
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class HelloServerClient {
         public static void main(String[] args) {
                   try {
                            String endpoint = "http://localhost:8088/axis/services/HelloServer";
                            Service service = new Service();
                            Call call = (Call)service.createCall();
                            call.setTargetEndpointAddress(new java.net.URL(endpoint));
                            call.setOperationName(new QName("http://ws.koma.cn", "sayHello"));
                            String rtn = (String)call.invoke(new String[]{"zhaoql"});
                            System.out.println("Sent 'zhaoql', \ngot '"+rtn+"'");
                   } catch (Exception e) {
                            e.printStackTrace();
                   }
         }
}

运行后结果 :

Sent 'zhaoql',  got 'Hello, zhaoql!'

5.卸载WS服务(实际上是删除axis\WEB-INF\server-config.wsdd文件中HelloServer的相关描述)

(1) 编写undeploy.wsdd文件

<undeployment name="test" xmlns="http://xml.apache.org/axis/wsdd/">
 	<service name="HelloServer"/>
</undeployment>

(2) 利用AdminClient工具执行卸载操作

(3) 执行成功后,可以看到server-config.wsdd中已经没了刚才的HelloServer的描述

6.org.apache.axis.client.AdminClient常用的方法:

(1) 发布ws服务到服务器端(实际上是修改server-config.wsdd文件)

deploy.wsdd –p 8088

(2) 从服务器取消ws服务,参数同上

undeploy.wsdd -p 8088

(3) 查看服务器所提供的所有的ws服务列表

list -p 8088

(4)将ws部署到指定的WEB项目(要先将.jar及web.xml拷贝到自己的项目中来),默认是:(http://localhost:8080/axis/servlet/AxisServlet)

deploy.wsdd –p 8088 –s MyWebProject/servlet/AxisServlet

7.可以查看ort.apache.axis.utils.Options的构造函数getUrl()方法

(1) Axis支持两种协议:http(默认)、file (-l 参数指定http协议,-f 参数指定file协议)

(2) 用 –l 或者 –f 参数指定协议等信息,如果为空,则默认是http协议, 如果指定了-l或者-f

则可以从参数中得到:主机(host)、端口(port)、AxisServlet的URL(servlet)、协议(protocol)

(3) –l参数可以指定AxisServlet的完整URL,默认情况下是:http://localhost:8080/axis/servlet/AxisServlet
例如可以:deploy.wsdd -l http://localhost:8088/AxisTestWeb/servlet/AxisServlet

(4) 如果 –h 参数不为空,则可以替换掉上面 –l 或者 –f 得到的host
如果 –p 参数不为空,则可以替换掉上面 –l 或者 –f 得到的port
如果 –s 参数不为空,则可以替换掉上面 –l 或者 –f 得到的servlet

(5) 如果host为空,则使用默认的host (localhost)
如果port为空,则使用默认的port(8080)
如果servlet为空,则使用默认的servlet(axis/servlet/AxisServlet)
如果protocol为空,则使用默认的protocol (http)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
要实现Spring Boot整合Axis1.4实现WebService服务端,可以按照以下步骤进行: 1. 在pom.xml文件中添加Axis1.4依赖: ``` <dependency> <groupId>org.apache.axis</groupId> <artifactId>axis</artifactId> <version>1.4</version> </dependency> ``` 2. 创建一个WebService接口,并在接口上添加@WebService注解: ``` @WebService public interface UserService { String sayHello(String name); } ``` 3. 创建一个WebService接口的实现类,并在实现类上添加@WebService(endpointInterface = "com.example.demo.UserService")注解: ``` @WebService(endpointInterface = "com.example.demo.UserService") public class UserServiceImpl implements UserService { @Override public String sayHello(String name) { return "Hello, " + name + "!"; } } ``` 4. 在Spring Boot的配置文件application.properties中添加Axis1.4的配置: ``` # Axis1.4配置 axis.servletPath=/services/* ``` 5. 创建一个AxisServlet的注册类,并在类上添加@Configuration和@EnableWebMvc注解: ``` @Configuration @EnableWebMvc public class AxisServletRegistration { @Bean public ServletRegistrationBean<AxisServlet> axisServlet() { ServletRegistrationBean<AxisServlet> registration = new ServletRegistrationBean<>(new AxisServlet(), "/services/*"); registration.addInitParameter("axis.servicesPath", "/WEB-INF/services"); registration.addInitParameter("axis.wsddPath", "/WEB-INF/server-config.wsdd"); return registration; } } ``` 6. 启动Spring Boot应用程序,访问http://localhost:8080/services/UserService?wsdl,可以看到WebService服务端已经成功启动。 以上就是Spring Boot整合Axis1.4实现WebService服务端的全部步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kida 的技术小屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值