当前位置:网站首页>Web Service简单入门示例
Web Service简单入门示例
2022-07-05 20:47:00 【全栈程序员站长】
大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。
Web Service简单入门示例
我们一般实现Web Service的方法有非常多种。当中我主要使用了CXF Apache插件和Axis 2两种。
Web Service是应用服务商为了解决每一个问题而提供的在线服务方案,其主要採用了SOAP(Simple Object Access Protocol)协议,传输数据格式使用XML格式来描写叙述。因此也具有跨平台的特性。
web广泛用到的技术:
- TCP/IP:通用 网络协议。被各种设备使用
- HTML( 标准通用标记语言下的一个应用):通用用户界面,能够使用HTML标签显示数据
- Java:写一次能够在不论什么系统执行的通用 编程语言,由于java具有跨平台特性
- XML( 标准通用标记语言下的一个子集):通用数据表达语言,在web上传送结构化数据的easy方法
他们的特点是其开放性。跨平台性,开放性正是Web services的基础。
以下是使用CXF Apache的插件实现Web Service的一个简单入门实例
1========新建一个服务接口
package com.clark;
import javax.jws.WebParam; import javax.jws.WebService;
@WebService public interface IHelloWorld { public String sayHello(@WebParam(name=”name”)String name); public int plus(int a,int b); } 2========服务接口实现类
package com.clark.impl;
import com.clark.IHelloWorld;
public class HelloWorldImpl implements IHelloWorld {
@Override public String sayHello(String name) { return “Hello Wolrd ,”+name; }
@Override public int plus(int a, int b) { return a+b; }
}
3============服务端
package com.clark.service;
import javax.xml.ws.Endpoint;
import com.clark.impl.HelloWorldImpl;
public class WebServiceApp { public static void main(String[] args) { System.out.println(“web service start”); HelloWorldImpl implementor = new HelloWorldImpl(); String address = “http://localhost:8080/IHelloWorld”; Endpoint.publish(address, implementor); System.out.println(“web service started”); } }
4============client(以下主要是针对Java普通程序的) package com.clark.client;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import com.clark.IHelloWorld;
public class HelloWorldClient { public static void main(String[] args) { JaxWsProxyFactoryBean svr = new JaxWsProxyFactoryBean(); svr.setServiceClass(IHelloWorld.class); svr.setAddress(“http://localhost:8080/CXFWebService/service/IHelloWorld”); IHelloWorld hw = (IHelloWorld) svr.create(); String name = hw.sayHello(” CXF Apache implements Web Service”); int result = hw.plus(2, 3); System.out.println(name); System.out.println(result); } }
4==============client(针对Spring中集成Web Service的Web开发) package com.clark.web;
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.clark.IHelloWorld;
public class HelloWorldClient { public static void main(String[] args) { System.out.println(“Web Service start……….”); ApplicationContext context = new ClassPathXmlApplicationContext(“applicationContext.xml”); IHelloWorld helloWorld = (IHelloWorld)context.getBean(“client”); String name = helloWorld.sayHello(“1111111111”); int result = helloWorld.plus(3, 4); System.out.println(name+” “+result); System.out.println(“Web Service end……….”); } }
5============Spring 的 applicationContext.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” xsi:schemaLocation=” http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd”>
<jaxws:endpoint id=”helloWorld” implementor=”com.clark.impl.HelloWorldImpl” address=”/IHelloWorld” /> <bean id=”client” class=”com.clark.IHelloWorld” factory-bean=”clientFactory” factory-method=”create”/> <bean id=”clientFactory” class=”org.apache.cxf.jaxws.JaxWsProxyFactoryBean”> <property name=”serviceClass” value=”com.clark.IHelloWorld”/> <property name=”address”
value=”http://localhost:8080/CXFWebService/service/IHelloWorld”/> </bean> </beans>
6=============Spring中集成Web Service服务(CXF Servlet的配置),web.xml <?
xml version=”1.0″ encoding=”UTF-8″?> <web-app xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns=”http://java.sun.com/xml/ns/javaee” xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd” id=”WebApp_ID” version=”2.5″> <display-name>CXFWebService</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <context-param> <param-name>contextConfigLocation</param-name> <!– <param-value>classpath:applicationContext.xml</param-value> –> <param-value>WEB-INF/applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>CXFServlet</servlet-name> <display-name>CXFServlet</display-name> <servlet-class> org.apache.cxf.transport.servlet.CXFServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet>
<servlet-mapping> <servlet-name>CXFServlet</servlet-name> <url-pattern>/service/*</url-pattern> </servlet-mapping> </web-app>
7=============启动服务,地址栏输入 http://localhost:8080/CXFWebService/service/IHelloWorld?
wsdl可以看到对应的SOAP协议在规格OK
版权声明:本文博客原创文章,博客,未经同意,不得转载。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117642.html原文链接:https://javaforall.cn
边栏推荐
- MySQL InnoDB架构原理
- Abnova丨DNA 标记高质量控制测试方案
- Implementation of redis unique ID generator
- Classic implementation of the basic method of intelligent home of Internet of things
- 10000+ 代码库、3000+ 研发人员大型保险集团的研发效能提升实践
- Abnova丨培养细胞总 RNA 纯化试剂盒中英文说明书
- Applet page navigation
- Pytorch 1.12 was released, officially supporting Apple M1 chip GPU acceleration and repairing many bugs
- Abnova丨CRISPR SpCas9 多克隆抗体方案
- haas506 2.0开发教程 - 阿里云ota - pac 固件升级(仅支持2.2以上版本)
猜你喜欢
Classic implementation of the basic method of intelligent home of Internet of things
解析五育融合之下的steam教育模式
Duchefa s0188 Chinese and English instructions of spectinomycin hydrochloride pentahydrate
Duchefa low melting point agarose PPC Chinese and English instructions
Abnova丨DNA 标记高质量控制测试方案
Abnova maxpab mouse derived polyclonal antibody solution
haas506 2.0开发教程 - 阿里云ota - pac 固件升级(仅支持2.2以上版本)
Abbkine BCA法 蛋白质定量试剂盒说明书
2.8 basic knowledge of project management process
Leetcode (695) - the largest area of an island
随机推荐
ProSci LAG-3 重组蛋白说明书
Classic implementation method of Hongmeng system controlling LED
【刷题记录】1. 两数之和
Interpreting the daily application functions of cooperative robots
小程序代码的构成
The development of research tourism practical education helps the development of cultural tourism industry
Abnova CRISPR spcas9 polyclonal antibody protocol
Analysis of steam education mode under the integration of five Education
Duchefa s0188 Chinese and English instructions of spectinomycin hydrochloride pentahydrate
CVPR 2022 | common 3D damage and data enhancement
Which securities is better for securities account opening? Is online account opening safe?
Duchefa丨S0188盐酸大观霉素五水合物中英文说明书
[UE4] unrealinsight obtains the real machine performance test report
AI automatically generates annotation documents from code
Sort and projection
Material Design组件 - 使用BottomSheet展现扩展内容(二)
Cutting edge technology for cultivating robot education creativity
Implementation of redis unique ID generator
Chemical properties and application instructions of prosci Lag3 antibody
Abnova丨E (DIII) (WNV) 重组蛋白 中英文说明书