当前位置:网站首页>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
边栏推荐
- 欢迎来战,赢取丰厚奖金:Code Golf 代码高尔夫挑战赛正式启动
- Which is the best online collaboration product? Microsoft loop, notion, flowus
- Duchefa d5124 md5a medium Chinese and English instructions
- Abnova DNA marker high quality control test program
- Composition of applet code
- 1. Strengthen learning basic knowledge points
- Make Jar, Not War
- Propping of resources
- 鸿蒙os第四次学习
- Mathematical analysis_ Notes_ Chapter 9: curve integral and surface integral
猜你喜欢
小程序事件绑定
Abnova CRISPR spcas9 polyclonal antibody protocol
Abnova丨 MaxPab 小鼠源多克隆抗体解决方案
MySQL InnoDB架构原理
How to form standard interface documents
Open source SPL eliminates tens of thousands of database intermediate tables
Abnova maxpab mouse derived polyclonal antibody solution
Use of form text box (II) input filtering (synthetic event)
Norgen AAV extractant box instructions (including features)
小程序页面导航
随机推荐
phpstudy小皮的mysql点击启动后迅速闪退,已解决
Welcome to the game and win rich bonuses: Code Golf Challenge officially launched
Open source SPL eliminates tens of thousands of database intermediate tables
【刷题记录】1. 两数之和
Is it safe to open an account online? Where can I get a low commission?
Abnova fluorescent dye 620-m streptavidin scheme
Abnova cyclosporin a monoclonal antibody and its research tools
Graph embedding learning notes
2. < tag hash table, string> supplement: Sword finger offer 50 The first character DBC that appears only once
Which securities is better for securities account opening? Is online account opening safe?
Redis唯一ID生成器的实现
The Chinese Academy of Management Sciences gathered industry experts, and Fu Qiang won the title of "top ten youth" of think tank experts
Maker education infiltrating the transformation of maker spirit and culture
Chemical properties and application instructions of prosci Lag3 antibody
Y57. Chapter III kubernetes from entry to proficiency -- business image version upgrade and rollback (30)
清除app data以及获取图标
Norgen AAV提取剂盒说明书(含特色)
ClickHouse 复制粘贴多行sql语句报错
MySQL InnoDB架构原理
Specification of protein quantitative kit for abbkine BCA method