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

Ssh项目添加WebService功能的步骤

发布时间:2020-12-16 23:05:39 所属栏目:安全 来源:网络整理
导读:?有需要学习例子,到这里下载地址 http://download.csdn.net/detail/wqsmd1/4470343 第一步:改造Web.xml servlet ??????? servlet-nameCXFServlet/servlet-name ?? ?servlet-classorg.apache.cxf.transport.servlet.CXFServlet/servlet-class ??? /servlet

?有需要学习例子,到这里下载地址

http://download.csdn.net/detail/wqsmd1/4470343

第一步:改造Web.xml

<servlet>

??????? <servlet-name>CXFServlet</servlet-name>

?? ?<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>

??? </servlet>

??? <servlet-mapping>

??????? <servlet-name>CXFServlet</servlet-name>

??????? <url-pattern>/webServices/*</url-pattern>

??? </servlet-mapping>

?

重点:?

配置webService对应的Jar包

??? <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>

???webService访问的地址格式

??????? <url-pattern>/webServices/*</url-pattern>

第二步:添加Sping关联的配置头文件

<beansxmlns="http://www.springframework.org/schema/beans"

??? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:jaxws="http://cxf.apache.org/jaxws"

??? xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd

??? http://cxf.apache.org/jaxwshttp://cxf.apache.org/schemas/jaxws.xsd">

?

?

重点:xmlns:jaxws="http://cxf.apache.org/jaxws

?

http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd

?

第三步:添加Sping关联的配置的示范代码

<beanid="IsshWs" class="com.test.wsservice.impl.SshWsImpl">

??????? <propertyname="userServiceTarget" ref="userServiceTarget"></property>

??? </bean>

?

??? <jaxws:endpointimplementor="#IsshWs" address="/cxfssh.ws">

?

??? </jaxws:endpoint>

?

package com.test.wsservice;

import java.util.List;

import javax.jws.WebService;

import com.test.bean.EmpLevel;

import com.test.bean.Users;

?

@WebService

public interface IsshWs {

?

??? // 定一个Web Service的操作。

??? voidaddThread(String fristName,String name,int age,EmpLevel emplv);

?

??? voidaddUserList(List<Users> list);

???

??? voidaddUserbyte(byte[] by);

???

??? voidaddUser(Users users);

}

?

package com.test.wsservice.impl;

?

import java.util.ArrayList;

import java.util.List;

?

import javax.jws.WebService;

?

import com.test.bean.EmpLevel;

import com.test.bean.Users;

import com.test.service.UserService;

import com.test.util.ObjectConvert;

import com.test.wsservice.IsshWs;

?

@WebService(endpointInterface = "com.test.wsservice.IsshWs",serviceName = "IsshWs")

public class SshWsImpl implements IsshWs {

?

??? privateUserService userServiceTarget;

?

??? @Override

??? publicvoid addThread(String fristName,EmpLevel emplv) {

??????? //应该通过调用业务逻辑组件的方法来实现该方法。

?

??????? Usersuser = new Users();

??????? user.setFirstname(fristName);

??????? user.setLastname(name);

??????? user.setAge(age);

??????? user.setEmpLevel(emplv);

??????? userServiceTarget.save(user);

??? }

?

??? publicvoid setUserServiceTarget(UserService userServiceTarget) {

??????? this.userServiceTarget= userServiceTarget;

??? }

?

??? publicUserService getUserServiceTarget() {

??????? returnuserServiceTarget;

??? }

?

??? @Override

??? publicvoid addUserList(List<Users> list) {

???????

??????? List<Users>userlist=new ArrayList<Users>();

??????? userlist=list;

??????? userServiceTarget.saveUserList(userlist);

?

??? }

?

??? @Override

??? publicvoid addUserbyte(byte[] by) {

?

??????? List<Users>list = (List<Users>) ObjectConvert.ByteToObject(by);

??????? userServiceTarget.saveUserList(list);

?

??? }

?

??? @Override

??? publicvoid addUser(Users users) {

??????? userServiceTarget.save(users);

?

??? }

?

}

?

第四步:Struts里面放行WS

?

struts.xml:

?

<action name="webServices/*.ws">

??????????? <result>webServices/{1}.ws</result>

</action>

?

?

与web.xml里url相对应

?

第五步:测试WS地址,并生成客户端代码

http://127.0.0.1:8080/testssh/webServices/cxfssh.ws?wsdl

?

备注:

1. webServices在web.xml里url相对应,并且struts.xml放行

2. cxfssh.ws在applicationContext.xml里配置的,并且与struts.xml相对应

?

?

生成客户端代码:

1. 进入客户端源文件夹

2. 运行以下代码

Wsdl2javahttp://127.0.0.1:8080/testssh/webServices/cxfssh.ws?wsdl

测试类:

package com.test.main;

?

import java.util.ArrayList;

import java.util.List;

?

import com.test.util.ObjectConvert;

import com.test.wsservice.EmpLevel;

import com.test.wsservice.Users;

import com.test.wsservice.impl.IsshWs;

?

?

public class TestMain {

?

??? /**

??? ?* @param args

??? ?*/

??? public staticvoid main(String[] args) {

???????

??????? //用实现类new一个WS的factory

??????? IsshWsfactory = new IsshWs();

???????

??????? //使用接口来取得代理

??????? com.test.wsservice.IsshWssw=factory.getSshWsImplPort();

???????

//????? sw.addThread("chen","youyi",29);

???????

??????? List<Users>list=new ArrayList();

???????

??????? EmpLevelemplv1=new EmpLevel();

??????? emplv1.setId((short)1);

??????? EmpLevelemplv2=new EmpLevel();

??????? emplv1.setId((short)2);

???????

???????

??????? Usersu1=new Users();

??????? u1.setFirstname("sfgs1");

??????? u1.setLastname("sdasdf1");

??????? u1.setAge(12);

??????? u1.setEmpLevel(emplv1);

?

??????? sw.addUser(u1);

???????

??????? Users u2=newUsers();

??????? u2.setFirstname("sfgs2");

??????? u2.setLastname("sdasdf2");

??????? u2.setAge(12);

??????? u2.setEmpLevel(emplv2);

??????? list.add(u1);

??????? list.add(u2);

//????? sw.addUserList(list);

???????

//????? byte[]by=ObjectConvert.ObjectToByte(list);

//????? sw.addUserbyte(by);

???????

???????

??? }

?

}

?

几张CXF关联流程图整理-------------------------------------à

WebService改造流程图:

?

?

WebService栏截器流程图:

WebService流程图:

?

WebService自动生成代码:

?

?

?

?

应用分析图解:

(编辑:李大同)

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

    推荐文章
      热点阅读