当前位置:首页 » 网页前端 » cxf发布web接口
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

cxf发布web接口

发布时间: 2022-07-20 14:08:14

‘壹’ CXF方式发布WebService服务,spring-cxf.xml中配置的发布服务方式区别,分别在什么情况下使用

只是配置的方式不同

~
~
~

‘贰’ 如何使用CXF调用webservice接口

1、 JaxWsProxyFactoryBean
简介:调用方式采用了和RMI类似的机制,即客户端直接服务器端提供的服务接口(interface),CXF通过运行时代理生成远程服务的代理对象,在客户端完成对webservice的访问;几个必填的字段:setAddress-这个就是我们发布webservice时候的地址,保持一致
缺点:这种调用service的好处在于调用过程非常简单,就几行代码就完成一个webservice的调用,但是客户端也必须依赖服务器端的接口,这种调用方式限制是很大的,要求服务器端的webservice必须是java实现--这样也就失去了使用webservice的意义
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
public class Client {
public static void main(String[] args) {
JaxWsProxyFactoryBean bean = new JaxWsProxyFactoryBean();
bean.setServiceClass(HelloWorldService.class);
bean.setAddress("http://localhost:9090/helloWorldService");
HelloWorldService helloWorldService = (HelloWorldService)bean.create();
String result = helloWorldService.sayHello("Kevin");
System.out.println(result);
}

2、JaxWsDynamicClientFactory [Dynamci:动态的]
简介:只要指定服务器端wsdl文件的位置,然后指定要调用的方法和方法的参数即可,不关心服务端的实现方式。
wsdl [Web Services Description Language]网络服务描述语言是Web Service的描述语言,它包含一系列描述某个web service的定义
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
public class Client2 {
public static void main(String[] args) throws Exception {
JaxWsDynamicClientFactory clientFactory = JaxWsDynamicClientFactory.newInstance();
Client client = clientFactory.createClient("http://localhost:9090/helloWorldService?wsdl");
Object[] result = client.invoke("sayHello", "KEVIN");
System.out.println(result[0]);
}
}

3、JaxWsServerFactoryBean
用JaxWsServerFactoryBean发布,需要独立的jetty包。
注:具体可以参考CXF API ----http://cxf.apache.org/docs/dynamic-clients.html

‘叁’ 基于cxf的webservice服务端怎么重新发布

什么怎么发布?接口,实现类写好了就可以发布了啊。
项目没有引入CXF包就是默认JDK发布,
引入后自动变成CXF发布啊

可以main方法发布,也可以在项目启动时发布,也可以在某一操作下发布啊
使用java.ws的类的Enpoint.publish(address,new xxxImpl);发布

‘肆’ 关于使用CXF 发布WebService的问题

经过我几年的CXF开发经验来看,发布服务确实有两种方式,一种是通过javax.xml.ws.Endpoint这个类,一种是通过Server

配置文件中可以使用<jaxws:endpoint> 或者<jaxws:server>来发布,效果差不多,至于区别。。

请看:
First, they are all for the server side configuration.
Second, jaxws:endpoint is coming from JAXWS API, and it is used to
configure the org.apache.cxf.jaxws.EndpointImpl which extends
javax.xml.ws.Endpoint.
jaxws:server is for configuring the JaxWsServerFactoryBean, which is
coming from the Xfire API.

For the user who has the Xfire using experience, I think they will
prefer to use jaxws:server tag.
For the JAXWS API fans, jaxws:endpoint will be they first choice.
There are not much difference between the jaxws:endpoint and
jaxws:server, since the EndpointImpl is a wrapper class for the
JaxWsServerFactoryBean.

‘伍’ 如何用java调用cxf webservice接口

WebService CXF客户端报 java.lang.RuntimeException: Cannot create a secure XMLInputFactory 异常,查了许多网络关于该问题的解决办法,很多都说缺少包问题,但问题是我的包都存在,我用的是apache-cxf-2.7.6,经过不懈努力终于解决了,我的服务端用的是web project,客户端用的是java project,客户端jar包是引用其它地方的,后来建一个web project客户端,把jar直接复制到project的lib目录下就行了,jdk用的是1.7,客户端依赖的接口用wsdl2java生成的。

‘陆’ 如何使用CXF调用webservice接口

1、使用axis调用
2、使用xfire调用
3、使用cxf调用
项目中,采用axis进行调用,记录如下,备忘:
ps教程:想当年的时候是用的xfire方式调用的,结果没做记录,现在已经完全记不得怎么玩了。所以说要多写博客啊 t_t
版本说明:
aixs版本:axis-bin-1_4.zip
java环境略
第一步:确保wsdl文件可用,文中为获取到sendsmsservice.wsdl,当然url的也行。
第二步:执行生成客户端代码的脚本。脚本内容为:
set axis_lib=d:axis-1_4lib
set java_cmd=java -djava.ext.dirs=%axis_lib%
set output_path=.
set package=info.jyzh.wap.liaoning.push
%java_cmd% org.apache.axis.wsdl.wsdl2java sendsmsservice.wsdl -o%output_path% -p%package% -t

‘柒’ 如何搭建基于cxf的webservice服务端

方法/步骤

如果是搭建web项目,首先可以从官网上示例程序,将里面的web.xml文件直接替换到新建的项目。进入apache官网,点击project

点击选择下载的镜像文件,通过这个链接就可以进入apache下所有开源项目下载地址界面。

找到cxf项目,选择合适的版本,可以下载带有源码或者不带有源码的程序示例

创建maven工程。打开eclipse,点击File--新建--Maven project就可以创建maven工程。

打开maven项目的pom.xml文件,将cxf需要的jar包添加到依赖中。
(由于文件内容比较多,如果你有需要,可以留言)

编写对外公布的接口和实现类。编写对外公布的接口,同时在接口的上面添加@Webservice的注解。编写实现类也要添加。

启动项目,本示例采用java application的方式启动,启动之后,在浏览器中输入地址就可以访问到wsdl文件内容。

‘捌’ 求助如何使用servicemixcxf发布webservice

1.创建一个Dynamic Web project,名为HelloWorld

2.在src中新建package,包名为net.kentop.ws

3.在net.kentop.ws包中新建class,类名为HelloWorld

4.修改HelloWorld.java文件如下

[java] view plain
package net.kentop.ws;

public class HelloWorld {
public String sayHello(String name) {
return "Hello " + name;
}
}

5.为HelloWorld项目创建Server,并启动Server

6.为HelloWorld.java文件创建WebService

7.测试webservice
点击Operations Name为sayHello的链接

在文本框中输入数据,点击“GO”按钮

下方会显示如下信息,表示测试成功

8.创建名为servicemix-cxf-bc-demo的Maven Project项目根目录

9.在根项目下创建名为cxf-bc-su-demo的servicemix-cxf-bc-service-unit

10.将HelloWorld项目下WebContent/wsdl/HelloWorld.wsdl文件拷贝到cxf-bc-su-demo/resources目录下,并将service.wsdl删除

11.将HelloWorld.wsdl如下代码

[xhtml] view plain
<wsdl:service name="HelloWorldService">

<wsdl:port binding="impl:HelloWorldSoapBinding" name="HelloWorld">

<wsdlsoap:address location="localhost:8080/HelloWorld/services/HelloWorld"/>

</wsdl:port>

</wsdl:service>