当前位置: 首页 > news >正文

网站模板源文件阿亮seo技术顾问

网站模板源文件,阿亮seo技术顾问,网站建设需要多少,wordpress网页怎么上传目录 概述环境搭建cxf示例wsdl2java(重要)JaxWsServerFactoryBeanJaxWsServerFactoryBean和ServerFactoryBean的区别使用JaxWsServerFactoryBean调用接口服务类拦截输入输出消息 在web项目中创建类的cxf服务(重点)在web项目中创建…

目录

      • 概述
      • 环境搭建
      • cxf示例
      • wsdl2java(重要)
      • JaxWsServerFactoryBean
        • JaxWsServerFactoryBean和ServerFactoryBean的区别
        • 使用JaxWsServerFactoryBean调用接口服务类
        • 拦截输入输出消息
      • 在web项目中创建类的cxf服务(重点)
      • 在web项目中创建接口的cxf服务
      • 修改cxf-servlet.xml的位置和文件名
      • 使用jquery调用cxf

概述

Apache CXF = Celtix + Xfire

有以下特点

  • 支持SOAP1.1和1.2
  • 支持HTTP
  • CORBA(Common Object Request Broker Architecture公共对象请求代理体系结构,早期语言使用的WS,C,c++,C#)
  • 并可以与Spring进行快速无缝的整合
  • 灵活的部署:可以运行有Tomcat,Jboss,Jetty(内置),IBMWS,BeaWS上面
  • cxf可以在接口上加@webservice注解,对接口的支持比较好

在这里插入图片描述
在这里插入图片描述
目录的结构详情如下:

bin(目录)
bin 目录中是 CXF 框架中所提供的代码生成、校验、管理控制台工具(可执行命令)

docs(目录)
CXF 所有类(class)对应的 API 文档,为开发者使用 CXF 完成应用开发提供应有的帮助。

etc(目录)
包含一个基本的 Service 暴露所需要的 web.xml 文件,及其它的配置文件。

lib(目录)
lib 目录中包含 CXF 及其运行时所需要的和可选的第三方支持类包(.jar 文件),可以根据不同项目所需的 CXF 特性选择所需要的支持类包。

如果不想一一去区分的话,可以直接在 Web 项目中包含所有的 CXF 及其运行时所需要的第三方支持类包(.jar 文件)即可。

其中 cxf-2.0.2-incubator.jar 是 CXF 框架的二进制包文件,包含了全部的模块(modules),cxf-manifest-incubator.jar 是列表清单文件manifest jar。

以下的 jar 包是所有 CXF 项目所必需的:
cxf.jar
commons-logging.jar
geronimo-activation.jar (Or the Sun equivalent)
geronimo-annotation.jar (Or the Sun equivalent)
geronimo-javamail.jar (Or the Sun equivalent)
neethi.jar
jaxb-api.jar
jaxb-impl.jar
stax-api.jar
XmlSchema.jar
wstx-asl.jar
xml-resolver.jar

对于 Java2WSDL 和 WSDL2Java,除了必需的之外,还需要再增加如下 jar 包:
jaxb-xjc.jar
veliocity.jar
velocity-dep.jar

为了支持 JAX-WS ,除了必需的之外,还需要再增加如下 jar 包:
jaxws-api.jar
saaj-api.jar
saaj-impl.jar
asm.jar (可选的,但是可以提升包装类型的性能)

为了支持 XML 配置,除了必需的之外,还需要再增加如下 jar 包:
aopalliance.jar
spring-beans.jar
spring-context.jar
spring-core.jar
spring.web.jar

为了独立的 HTTP 服务支持,除了必需的之外,还需要再增加如下 jar 包:
geronimo-servlet.jar
jetty.jar
jetty-sslengine.jar
jetty-util.jar
sl4j.jar & sl4j-jdk14.jar (可选的,但是可以提升日志 logging)

为了支持 Aegis ,除了必需的之外,还需要再增加如下 jar 包:
jaxen.jar
jdom.jar
stax-utils.jar

为了支持 WS-Security ,除了必需的之外,还需要再增加如下 jar 包:
bcprov-jdk14.jar
wss4j.jar
xalan.jar
xmlsec.jar

为了支持 HTTP Binding ,除了必需的之外,还需要再增加如下 jar 包:
jra.jar
jettison.jar (仅为 JSON 服务所需的)

licenses(目录)
列表了引用第三方 jar 包的相关许可协议。

modules(目录)
modules 目录中包含了 CXF 框架根据不同特性分开进行编译的二进制包文件。发布基于 CXF 框架的 Web 项目时,可以选择使用该目录下的所有 .jar 文件,也可以选择 lib 目 录中的 cxf-2.0.2-incubator.jar 文件。

samples(目录)
samples 目录中包含了所有随 CXF 二进制包发布的示例,包含这些示例的源代码和相关 Web 应用配置文件,可以方便地用 Ant 来编译运行测试这些示例,来了解 CXF 的开发和

使用的方法。可以通过 samples 目录和它各个子目录下的 README.txt 的文件来详细了解示例的编译与运行的步骤。

环境搭建

需要jdk的支持
在这里插入图片描述
配置环境变量CXF_HOME
在这里插入图片描述
需要ant的支持,配置ANT_HOME
在这里插入图片描述
配置环境变量CATALINA_HOME
在这里插入图片描述
配置环境变量Path

Path=%JAVA_HOME%\bin;%CXF_HOME%\bin;%CATALINA_HOME%\bin;%ANT_HOME%\bin

配置环境变量CLASSPATH

CLASSPATH=.;%CXF_HOME%\lib\cxf-manifest.jar;.\build\classes

cxf示例

1.创建java项目

2.引入所有依赖包

3.创建服务类

@WebService
@BindingType(value=javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING)
public class HelloService {public static void main(String[] args) {//创建服务工厂对象//ServerFactoryBean sfb = new ServerFactoryBean();
JaxWsServerFactoryBean sfb = new JaxWsServerFactoryBean ();//设置服务地址sfb.setAddress("http://127.0.0.1:7777/hello");//设置服务类sfb.setServiceClass(HelloService.class);//设置服务对象的实例sfb.setServiceBean(new HelloService());//发布服务sfb.create();}	public String sayHello(String name){return name+ " hello";}
}

4.通过wsimport(SOAP1.1)生成客户端代码

5.调用webservice服务

wsdl2java(重要)

在cxf中,也提供了一个用于生成客户端调用代码的工具。它的功能就如同wsimport一样的指令。

先让我们了解一下cxf的wsdl2java工具,可以生成一堆客户端调用的代码,既可以生成SOAP1.1也可以生成SOAP1.2。

此工具位于cxf_home/bin目录下,参数与wsimport有所不同。

  • -d参数,指定代码生成的目录。
  • -p参数,指定生成的新的包结构。

需要说明的是,由于wsdl2java生成的本地代码,所以,需要对生成的代码做一点点修改。

示例:
在这里插入图片描述

JaxWsServerFactoryBean

JaxWsServerFactoryBean和ServerFactoryBean的区别

ServerFactoryBean

  • 服务类上不需要加注解
  • 服务类中没有发布的方法不会报错
  • 缺点:生成的wsdl的文档的命名不规范,很重要

JaxWsServerFactoryBean

  • 发布的服务类上必须要加@WebService
  • 服务类中没有发布的方法不会报错但是wsdl无效
  • 生成的wsdl的文档是规范的
	public static void publishWSWithServerFactoryBean(){//创建cxf发布的服务对象ServerFactoryBean sfb = new ServerFactoryBean();//设置服务的类sfb.setServiceClass(PersonService.class);//设置服务地址sfb.setAddress("http://localhost:5555/hello");//设置服务类对象//sfb.setServiceBean(new PersonService());//发布sfb.create();}public static void publishWSWithJaxWsServerFactoryBean(){//创建cxf发布的服务对象JaxWsServerFactoryBean sfb = new JaxWsServerFactoryBean();//设置服务的类sfb.setServiceClass(PersonService1.class);//设置服务地址sfb.setAddress("http://localhost:6666/hello");//设置服务类对象sfb.setServiceBean(new PersonService1());//发布sfb.create();}
使用JaxWsServerFactoryBean调用接口服务类

1.创建服务接口

@WebService//注意注解加在接口上
public interface HI {public String sayHi(String name);
}

2.创建接口实现类

public class HIImpl implements HI {@Overridepublic String sayHi(String name) {// TODO Auto-generated method stubreturn name + " hello";}
}

3.创建发布服务类

public static void main(String[] args) {JaxWsServerFactoryBean jf = new JaxWsServerFactoryBean();jf.setAddress("http://127.0.0.1:5555/hi");jf.setServiceClass(HI.class);jf.setServiceBean(new HIImpl());jf.create();}

4.生成客户端代码
在这里插入图片描述
5.调用客户端

public class Client {public static void main(String[] args) {HIService hs = new HIService();HI serviceClass = hs.getHIPort();System.out.println(serviceClass.sayHi("张三"));}
}
拦截输入输出消息
LoggingInInterceptor – 信息输入时的拦截器 –请求
LoggingOutInterceptor – 信息输出时的拦截器 - 响应
public class InterServer {public static void main(String[] args) {JaxWsServerFactoryBean jf = new JaxWsServerFactoryBean();jf.getInInterceptors().add(new LoggingInInterceptor());jf.getOutInterceptors().add(new LoggingOutInterceptor());jf.setAddress("http://127.0.0.1:5555/hi");jf.setServiceClass(HI.class);jf.setServiceBean(new HIImpl());jf.create();}
}

在web项目中创建类的cxf服务(重点)

1.创建web项目

2.导入所有包

3.创建服务类,必须指定注解@webService

4.创建cxf的核心配置文件cxf-servlet.xml,用于配置第三步写好的服务类或者是接口

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"xmlns:jaxrs="http://cxf.apache.org/jaxrs" xmlns:cxf="http://cxf.apache.org/core"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsdhttp://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsdhttp://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd"><!-- 引入CXF Bean定义如下,早期的版本中使用 --><import resource="classpath:META-INF/cxf/cxf.xml" /><import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /><import resource="classpath:META-INF/cxf/cxf-servlet.xml" /><jaxws:endpoint id="hello" address="/hello" implementor="com.rl.cxf.web.server.HelloService"><jaxws:outInterceptors><bean class="org.apache.cxf.interceptor.LoggingInInterceptor"></bean></jaxws:outInterceptors><jaxws:inInterceptors><bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean></jaxws:inInterceptors></jaxws:endpoint>
</beans>

5.配置web.xml

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app><servlet><servlet-name>cxf</servlet-name><servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class></servlet><servlet-mapping><servlet-name>cxf</servlet-name><url-pattern>/services/*</url-pattern></servlet-mapping><session-config><session-timeout>60</session-timeout></session-config>
</web-app>

在web项目中创建接口的cxf服务

1.创建服务接口在接口上加@webservice

2.创建服务接口的实现类

3.在web.xml中配置CXFServlet

4.配置cxf-servlet.xml

<jaxws:server id="bye" address="/bye" serviceClass="com.rl.cxf.web.inter.ByeInter"><jaxws:serviceBean><bean class="com.rl.cxf.web.inter.ByeInterImpl"></bean></jaxws:serviceBean><jaxws:outInterceptors><bean class="org.apache.cxf.interceptor.LoggingInInterceptor"></bean></jaxws:outInterceptors><jaxws:inInterceptors><bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean></jaxws:inInterceptors>
</jaxws:server>

5.使用wsdl2java生成客户端代码

6.调用webservice

修改cxf-servlet.xml的位置和文件名

第一种方式

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app><servlet><servlet-name>cxf</servlet-name><servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class><init-param><param-name>config-location</param-name><param-value>classpath:cxf.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>cxf</servlet-name><url-pattern>/services/*</url-pattern></servlet-mapping>
</web-app>

第二种方式

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:cxf.xml</param-value></context-param><servlet><servlet-name>cxf</servlet-name><servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class></servlet><servlet-mapping><servlet-name>cxf</servlet-name><url-pattern>/services/*</url-pattern></servlet-mapping>
</web-app>

使用jquery调用cxf

$(function(){$("#mybutton").click(function(){var data = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://server.web.cxf.rl.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'+'<soapenv:Body>'+'<q0:sayHello>'+'   <arg0>sss</arg0>'+' </q0:sayHello>'+'</soapenv:Body>'+'</soapenv:Envelope>';$.ajax({url:'http://localhost:8080/cxf-web-server/services/hello',type:'post',dataType:'xml',contentType:'text/xml;charset=UTF-8',data:data,success:function(responseText){alert($(responseText).find('return').text());},error:function(){alert("error");}})})})
http://www.zhongyajixie.com/news/9741.html

相关文章:

  • 长沙网站se0推广优化公司厦门人才网最新招聘信息网
  • 学校网站建设电话2023年国家免费技能培训
  • 商务网站开发作业成都最新数据消息
  • 北京网站推广怎么做营销策略分析
  • 网站备案号怎么放热搜在哪里可以看
  • 政府类网站建设 经费郑州网站建设专业乐云seo
  • iis7 网站权限设置公司软文推广
  • 旅游网站建设意义深圳seo优化推广
  • 厦门公司做网站百度云官网登录首页
  • 如何在空白服务器上搭建网站班级优化大师下载安装
  • 扬州网站建设seo关键词优化怎么做
  • 网站导航栏下拉菜单西安seo外包优化
  • 怎么建网站做淘宝客网址安全中心检测
  • 网站程序上传教程汕头seo网络推广
  • vps建设网站别人访问不了百度搜索关键词排名优化推广
  • 长景园林这个网站谁做的在哪个平台做推广比较好
  • 淄博网站建设 很乱怎么推广一个app
  • 如何注册域名和网站蚂蚁链接bt链接
  • 绍兴网站制作计划今日热点头条新闻
  • 如何做网站限制策略app推广方案怎么写
  • 做色情游戏的网站有哪些拼多多怎么查商品排名
  • 句容网站建设公司怎样做推广营销
  • 有了域名空间服务器怎么做网站免费手机网页制作
  • 1688货源网官方网站入口搜索引擎网站排名
  • 17网站一起做网做百度推广销售怎么找客户
  • 数据展示网站模板爱站网站长百度查询权重
  • 网站建设shebei谷歌 翻墙入口
  • 餐饮门户网站 方案怎么做百度产品优化排名软件
  • 上海公安手机门户网站网址大全名称
  • 征婚网站上拉业务做恒指期货如何创建自己的网站