javawebservice开发详解(java实现webservice)

今天给各位分享javawebservice开发详解的知识,其中也会对java实现webservice进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

1、webservice该怎么进行学习?2、java开发webservice接口有几种方式3、java Webservice都有哪几种方式啊,哪种方式比较好啊4、java开发WebService服务端,用什么最好,各种技术的区别是什么5、java invoke 以及 webservice详解,求助6、用Java开发webservise怎么返回json数据

webservice该怎么进行学习?

第一:VS中建立Webserives项目,第二在所建立的程序中去引用第一步建立的Webservices,这样就OK,建立应用之后会在你的程序中生成代码,直接实力话一个客户端的类就可以去调用了。

如果想做的更宽泛一点,可以去看看WCF,毕竟WCF可以使用更多的通信标准之上,Webservice之能用于Http协议

1.用java开发webservice接口。

2.要学哪些知识?

3,要用哪些框架?

4.有哪些书介绍

5.有哪些学习webservice的网站介绍

javawebservice开发详解(java实现webservice)

java开发webservice接口有几种方式

Support for Standards

JSR Support

    JAX-WS – Java API for XML-Based Web Services (JAX-WS) 2.0 – JSR-224

    Web Services Metadata for the Java Platform – JSR-181

    JAX-RS – The Java API for RESTful Web Services – JSR-311

    SAAJ – SOAP with Attachments API for Java (SAAJ) – JSR-67

WS-* and related Specifications Support

    Basic support: WS-I Basic Profile 1.1

    Quality of Service: WS-Reliable Messaging

    Metadata: WS-Policy, WSDL 1.1 – Web Service Definition Language

    Communication Security: WS-Security, WS-SecurityPolicy, WS-SecureConversation, WS-Trust (partial support)

    Messaging Support: WS-Addressing, SOAP 1.1, SOAP 1.2, Message Transmission Optimization Mechanism (MTOM)

Multiple Transports, Protocol Bindings, Data Bindings, and Formats

    Transports: HTTP, Servlet, JMS, In-VM and many others via the Camel transport for CXF such as SMTP/POP3, TCP and Jabber

    Protocol Bindings: SOAP, REST/HTTP, pure XML

    Data bindings: JAXB 2.x, Aegis, Apache XMLBeans, Service Data Objects (SDO), JiBX

    Formats: XML Textual, JSON, FastInfoset

    Extensibility API allows additional bindings for CXF, enabling additional message format support such as CORBA/IIOP

java Webservice都有哪几种方式啊,哪种方式比较好啊

webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录。

1.Axis2

Axis是apache下一个开源的webservice开发组件,出现的算是比较早了,也比较成熟。这里主要介绍Axis+eclipse开发webservice,当然不用eclipse也可以开发和发布webservice,只是用eclipse会比较方便。

(1)下载eclipse的Java EE版本

(2)下载axis2

(3)下载eclipse的axis2插件

Axis2_Codegen_Wizard

Axis2_Service_Archiver

推荐使用1.3的版本

(4)eclipse安装axis2插件

1)在任意目录下新建一个Axis2文件夹,在该文件夹下新建eclipse目录,在eclipse目录中新建plugins目录和features目录,例如:D:\programSoftware\eclipse-SVN\Axis2\eclipse;

2)把下载的axis2插件解压,并把解压的文件放到新建的eclipse的plugins目录下;

3)在%eclipse_home%的目录下新建links目录,并在links目录下新建axis2.link文件,内容为:path=D:\programSoftware\eclipse-SVN\Axis2;

4)重启eclipse,点击·file-new-other,如果看到Axis2 Wizards,则表明插件安装成功。

(5)安装axis2

(6)使用eclipse新建web工程,创建一个普通java类,至少包含一个方法。

(7)发布webservice

1)点击eclipse的File-New-other,打开Axis2 Wizards,选择Axis2 Service Archiver,然后Next;

2)选择Class File Location,也就是类文件存放路径,注意:只选到classes目录,不要包括包文件夹,然后Next;

3)选择Skip WSDL,然后Next

4)一路Next到Select the Service XML file to be included in the Service archive,勾选Generate theservice xml automatically;

5)Service Name-填写你的service名称,Class Name-填写类名称,要包括包名,然后点击load,然后点击Finish,这时webservice就发布成功了;

6)然后到%TOMCAT_HOME%/webapps/axis2/WEB-INF/services 看看是否多了一个.aar的文件;

注意:以上的方式是发布到axis2.war包中,你也可以把生成.aar文件copy到你的实际应用中,同时,你也可以使用eclipse的create webservice功能发布你的webservice,选择axis2生成你的webservice,这样webservice就会部署到你的应用中了。

2.Apche CXF

CXF开发webservice也是比较方便和简单的,它和spring的集成可以说是非常地好。举一个CXF开发webservice的例子吧。

1)在eclipse中新建一个web工程,导入依赖包,如图:

2)编写一个接口,如:

注意:CXF开发的webservice,接口中的方法的参数一定要以这种方式,否则客户端调用的时候CXF服务端会接收不到参数的值,name:参数名称,可不写(建议写上),targetNamespace:命名空间,一定要填写上,默认是包名反过来的顺序,mode:参数类型,IN表示输入。

3)编写一个实现类,实现接口的方法;

4)和spring的集成,编写一个bean文件,如:cxf-beans.xml,内容如下:

Cxf-beans.xml代码

?xml version=”1.0″ encoding=”UTF-8″ ?

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=”vote” implementor=”com.zcl.cxf.service.VoteImpl” address=”/Vote” /

/beans

这个文件比较容易理解,就不解释了。

5)配置CXFServlet

在web.xml文件中配置CXFServlet,加载cxf-beans.xml文件,内容如下:

Web.xml代码

id=”WebApp_ID” version=”2.5″

context-param

param-namecontextConfigLocation/param-name

param-valueWEB-INF/cxf-beans.xml/param-value

/context-param

listener

listener-classorg.springframework.web.context.ContextLoaderListener/listener-class

/listener

servlet

servlet-namecxf/servlet-name

servlet-classorg.apache.cxf.transport.servlet.CXFServlet/servlet-class

load-on-startup1/load-on-startup

/servlet

servlet-mapping

servlet-namecxf/servlet-name

url-pattern/services/*/url-pattern

/servlet-mapping

/web-app

把工程部署到中间件,如tomcat,就可以访问该webservice了。

3.JDK开发webservice

1)编写一个Java类,如下:

Jdkwebservice.java代码

package demo;

import javax.jws.WebParam;

import javax.jws.WebService;

import javax.xml.ws.Endpoint;

@WebService

public class JdkWebService {

return “Just do it,” + value + “!”;

}

public static void main(String[] args) {

}

}

2)运行该java类,在浏览器上就可以访问该webservice了。

注意:开发web工程的时候,这种方法不太友好。我们可以编写一个servlet类,在servlet类的初始化方法中发布webservice,这样我们的中间件服务器启动的时候就会帮我们自动webservice了。

4) xfire

开发WebService的框架不少,每个框架都有各自的有点,最近我用xfire练习开发WebService,下面是开发WebService的小例子,希望对入门的人有些小帮助

1.新建一个java web project命名为TestWebService,将xfire相关的jar包添加到lib目录中,写接口类和实现类

Java代码

package com.lamp.service;

public interface MessageService {

public String getName(String name);

}

[java] view plaincopyprint?

package com.lamp.service;

public interface MessageService {

public String getName(String name);

}

实现类

Java代码

package com.lamp.service.impl;

import com.lamp.service.MessageService;

public class MessageServiceImpl implements MessageService {

public String getName(String name) {

return “hellow ” + name + “, welcome to WebService world”;

}

}

[java] view plaincopyprint?

package com.lamp.service.impl;

import com.lamp.service.MessageService;

public class MessageServiceImpl implements MessageService {

public String getName(String name) {

return “hellow ” + name + “, welcome to WebService world”;

}

}

在src目录下新建文件夹META-INF,然后再在其下新建文件夹xfire,在xfire目录下新建配置文件services.xml

Xml代码

?xml version=”1.0″ encoding=”UTF-8″?

service

nameMessageService/name

serviceClasscom.lamp.service.MessageService/serviceClass

implementationClasscom.lamp.service.impl.MessageServiceImpl/implementationClass

/service

/beans

[xml] view plaincopyprint?

?xml version=”1.0″ encoding=”UTF-8″?

service

nameMessageService/name

serviceClasscom.lamp.service.MessageService/serviceClass

implementationClasscom.lamp.service.impl.MessageServiceImpl/implementationClass

/service

/beans

最后在web.xml中配置xfire的servlet

Xml代码

servlet

servlet-nameXFireServlet/servlet-name

servlet-class

/servlet-class

/servlet

servlet-mapping

servlet-nameXFireServlet/servlet-name

url-pattern/servlet/XFireServlet/*/url-pattern

/servlet-mapping

servlet-mapping

servlet-nameXFireServlet/servlet-name

url-pattern/services/*/url-pattern

/servlet-mapping

[xml] view plaincopyprint?

servlet

servlet-nameXFireServlet/servlet-name

servlet-class

/servlet-class

/servlet

servlet-mapping

servlet-nameXFireServlet/servlet-name

url-pattern/servlet/XFireServlet/*/url-pattern

/servlet-mapping

servlet-mapping

servlet-nameXFireServlet/servlet-name

url-pattern/services/*/url-pattern

/servlet-mapping

这样服务器端开发完毕,现在开始客户端的开发

新建一个java project也将xfire相关的jar引入,我用ant在客户端生成代理对象,在项目路径下新建build.xml,代码为

Xml代码

?xml version=”1.0″ encoding=”UTF-8″?

project name=”WebService” basedir=”.” default=”gen-webservice”

property file=”build.properties”

/property

path id=”project-classpath”

fileset dir=”${lib.dir}”

include name=”**/*.jar” /

/fileset

/path

target name=”gen-webservice”

taskdef name=”wsgen” classname=”org.codehaus.xfire.gen.WsGenTask” classpathref=”project-classpath” /

wsgen outputDirectory=”${src.dir}”

wsdl=”${wsdl.dir}” package=”com.lamp.ws.client” overwrite=”true”/

/target

/project

[xml] view plaincopyprint?

?xml version=”1.0″ encoding=”UTF-8″?

project name=”WebService” basedir=”.” default=”gen-webservice”

property file=”build.properties”

/property

path id=”project-classpath”

fileset dir=”${lib.dir}”

include name=”**/*.jar” /

/fileset

/path

target name=”gen-webservice”

taskdef name=”wsgen” classname=”org.codehaus.xfire.gen.WsGenTask” classpathref=”project-classpath” /

wsgen outputDirectory=”${src.dir}”

wsdl=”${wsdl.dir}” package=”com.lamp.ws.client” overwrite=”true”/

/target

/project

java开发WebService服务端,用什么最好,各种技术的区别是什么

我们在项目中使用的是通过cxf的方式来实现webService,实现webService总共有三种方式

Axis2——Xfire——cxf

为什么要使用cxf来实现webService呢,是因为了解到cxf是xfire的升级版本,适用于java语言,

xfire/cxf 性能比axis2要高,并且和spring整合起来也比较方便,而axis2支持更多的语言,性能相对于cxf要低,所以采用cxf这种方式实现了两个项目之间数据的传递,为了保证webservice的安全性我们采用了基于WS-Security标准的安全验证(使用CXF回调函数)。

java invoke 以及 webservice详解,求助

1、invoke()一般是java反射里的方法。

1、给外界提供的都是接口

定义一个接口,然后给这个接口定义一个实现类。

2、在src目录下新建一个META-INF文件夹,在这个文件夹下新建一个xfire文件夹,在这个文件夹下再新建一个service.xml文件。

文件内容配置例子:

?xml version=”1.0″ encoding=”UTF-8″?

beans xmlns=””

service

nameCalculatorService/name!–接口的名字–

serviceClasscom.hhaip.service.CalculatorService/serviceClass!–定义的那个接口–

implementationClass

com.hhaip.service.impl.CalculatorServiceImpl !–接口的实现–

/implementationClass

/service

/beans

3、在web.xml中将服务公布出去

!– 将服务公布出去 —

servlet

servlet-nameXFireServlet/servlet-name

display-nameXFire Servlet/display-name

servlet-class

org.codehaus.xfire.transport.http.XFireConfigurableServlet

/servlet-class

/servlet

servlet-mapping

servlet-nameXFireServlet/servlet-name

url-pattern/servlet/XFireServlet/*/url-pattern

/servlet-mapping

servlet-mapping

servlet-nameXFireServlet/servlet-name

url-pattern/services/*/url-pattern

/servlet-mapping

———————————————以上就是服务端信息————————————————-

———————————————以下就是客户端信息————————————————-

1、客户端使用Ant自动建站工具帮我生成好访问Web接口所需要的信息。

2、Ant自动生成好客户端代码后,只需要新建一个测试类测试。

Ant配置例子:

build.xml

?xml version=”1.0″ encoding=”UTF-8″?

project name=”WebService” basedir=”.” default=”webservice”

property file=”build.properties” /

path id=”project-classpath”

fileset dir=”${lib.dir}”

include name=”**/*.jar” /

/fileset

/path

target name=”webservice”

taskdef name=”wsgen” classname=”org.codehaus.xfire.gen.WsGenTask”

classpathref=”project-classpath” /

wsgen outputDirectory=”${scr.dir}” wsdl=”${wsdl.dir}” package=”com.hhaip.client” overwrite=”true”/

/target

/project

build.properties

scr.dir=${basedir}/src

lib.dir=E:/jar/xfire-1.2.6/lib

wsdl.dir=

— wsdl.dir这个路径配置最重要。

测试类代码:

public class TestService {

public static void main(String[] args) {

CalculatorServiceClient client = new CalculatorServiceClient();

//CalculatorServiceClient是Ant生成的客户端代码

CalculatorServicePortType portType = client.getCalculatorServiceHttpPort();

//获取接口

int addResult = portType.add(1, 3);

System.out.println(addResult);

}

用Java开发webservise怎么返回json数据

标准的webservice是无法直接返回json数据的,因为标准webservice走soap协议,要求请求和相应报文都必须是xml

如果要返回json数据,只能在返回的xml中加属性,里面封装json字符串

javawebservice开发详解的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java实现webservice、javawebservice开发详解的信息别忘了在本站进行查找喔。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月29日 06:03:56
下一篇 2024年3月29日 06:13:11

相关推荐

  • java正则表达式详解,java身份证号码的正则表达式

    高级Java开发中什么是正则表达式? 1、java正则表达式是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。 2、正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字…

    2024年5月23日
    3600
  • linux内核配置详解,linux 内核配置

    浅谈Linux优化及安全配置个人体会总结 Linux系统的安全策略 Linux系统的用户账号策略 管理员的工作中,相当重要的一环就是管理账号。在管理 Linux 主机的账号时,一个最重要的方面就是确保每一个UID仅仅使用一次。 删除特殊的账户和账户组 Linux提供了各种不同角色的系统账号,在系统安装完成后,默认会安装很多不必要的用户和用户组,如果不需要某些…

    2024年5月23日
    4200
  • java上传图片到七牛,java的图片上传详解

    不知道怎么上传文件到七牛云上,大神们有步骤吗? 1、如何将android apk文件上传到七牛云? 1首先要设置mimeType文件格式。如图片的:image/png, image/jpeg, image/jpg, image/webp。 2、最后调用_upload方法向七牛的上传图片的接口地址: http://upload.qiniu.com ,发送请求,…

    2024年5月23日
    4300
  • excel函数对应的值,excel函数公式大全详解

    如何用vlookup函数找到对应数值? Vlookup函数的用法=Vlookup(查找的数据,查找的区域,返回值在查找区域的列数,匹配方式)。其中,查找区域第一列必须是查找数据所在的列,匹配方式有两种0或者false为精确匹配,1或者True为近似匹配。 首先需要在单元格中先输入=,再输入VLOOKUP函数。然后选择函数的第一个数据,直接用鼠标左键选择前面的…

    2024年5月23日
    4800
  • linuxss命令技巧,linux中ssh命令详解

    linux常用命令 1、以下是一些常用的 Linux 命令:ls:列出当前目录下的文件和目录。cd:改变当前目录。pwd:显示当前目录的路径。mkdir:创建新目录。rm:删除文件或目录。cp:复制文件或目录。mv:移动文件或目录。touch:创建新文件。 2、cat(连接的缩写)是Linux中最常用的命令之一。它用于在标准输出(sdout)上列出文件的内容…

    2024年5月23日
    4500
  • 嵌入式linux查看文件系统版本,嵌入式linux设备驱动开发详解

    如何查看嵌入式linux使用的文件系统类型 1、通过df命令查看。df 命令是用来查看文件系统磁盘空间使用量的。但df 命令只会列出已挂载的文件系统信息,对于没有挂载的文件系统是查看不到的。使用这个命令可以很方便的查看已挂载的文件系统的空间使用量、剩余空间大小等信息。 2、使用 file 命令:你可以使用 file 命令来查看文件的类型。例如,使用 file…

    2024年5月23日
    3700
  • linux进程池,linux进程状态详解

    PHP可以做什么 1、数据处理和传送:php编程语言很灵活,在程序设计语言上,与C语言相似度比较高,具有较高的数据处理和传送能力。建立web站点:php编程可以建立一个真正交互的web站点。 2、php主要应用于以下几个方面:制作网站:php最简单的应用就是制作网站,包括数据库类操作、社区、系统和管理。 3、辅助开发,可以用php来辅助其他的东西来做开发,比…

    2024年5月22日
    4200
  • javawebservice学习,java webservice soap

    高级Java软件工程师必须学什么? java工程师需要学什么?下面为您详细介绍!JavaEE基础:Java基础语法、面向对象、核心类库、集合、异常、IO、线程、JDK新特性。 Java软件工程师主要学习html网页设计基础,divcss网页布局设计,html5开发,JavaScript变成,sql-server数据库,Java语言基础,Java面向对象程序设…

    2024年5月22日
    4100
  • linuxlndir详解,linux ldd命令详解

    rk3188的uboot.img怎么编译 1、方法详解 第一就是WIPE。有可能是当初没有WIPE干净,有残留,所以刷机后再WIPE一遍。刷机前尽量把内存卡中运行自动生成的文件夹删掉,因为这些文件也可能影响系统的稳定运行。 2、步骤首先要确定手机是否刷入了Recovery ,如果没有的需要刷入Recovery才能进入Recovery进行刷机。步骤然后在进入设…

    2024年5月22日
    5200
  • javawebservice调用超时,java调用webservices

    急:使用webservice方式跟第三方通讯时超时【java.net.ConnectException… 第3个异常是java.net.SocketException: Socket is closed,该异常在客户端和服务器均可能发生。异常的原因是己方主动关闭了连接后(调用了Socket的close方法)再对网络连接进行读写操作。 先把连接超时…

    2024年5月22日
    3300

发表回复

登录后才能评论



关注微信