<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>http://wiki.eijux.com/index.php?action=history&amp;feed=atom&amp;title=Web_Services%EF%BC%9A%E7%AE%80%E5%8D%95%E7%9A%84Java%E7%A4%BA%E4%BE%8B</id>
	<title>Web Services：简单的Java示例 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.eijux.com/index.php?action=history&amp;feed=atom&amp;title=Web_Services%EF%BC%9A%E7%AE%80%E5%8D%95%E7%9A%84Java%E7%A4%BA%E4%BE%8B"/>
	<link rel="alternate" type="text/html" href="http://wiki.eijux.com/index.php?title=Web_Services%EF%BC%9A%E7%AE%80%E5%8D%95%E7%9A%84Java%E7%A4%BA%E4%BE%8B&amp;action=history"/>
	<updated>2026-04-28T16:06:26Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>http://wiki.eijux.com/index.php?title=Web_Services%EF%BC%9A%E7%AE%80%E5%8D%95%E7%9A%84Java%E7%A4%BA%E4%BE%8B&amp;diff=4219&amp;oldid=prev</id>
		<title>Eijux：​/* 关于 */</title>
		<link rel="alternate" type="text/html" href="http://wiki.eijux.com/index.php?title=Web_Services%EF%BC%9A%E7%AE%80%E5%8D%95%E7%9A%84Java%E7%A4%BA%E4%BE%8B&amp;diff=4219&amp;oldid=prev"/>
		<updated>2021-06-03T17:22:18Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;关于&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2021年6月4日 (五) 01:22的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l10&quot;&gt;第10行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第10行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;创建服务端/客户端项目，项目可以是 Java Web 项目，也可以是普通的 Java 项目：&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;创建服务端/客户端项目，项目可以是 Java Web 项目，也可以是普通的 Java 项目：&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: [[File:WebServices：Java：创建项目.png|400px]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*&lt;/ins&gt;: [[File:WebServices：Java：创建项目.png|400px]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 服务端 ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 服务端 ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Eijux</name></author>
	</entry>
	<entry>
		<id>http://wiki.eijux.com/index.php?title=Web_Services%EF%BC%9A%E7%AE%80%E5%8D%95%E7%9A%84Java%E7%A4%BA%E4%BE%8B&amp;diff=4218&amp;oldid=prev</id>
		<title>Eijux：​/* 关于 */</title>
		<link rel="alternate" type="text/html" href="http://wiki.eijux.com/index.php?title=Web_Services%EF%BC%9A%E7%AE%80%E5%8D%95%E7%9A%84Java%E7%A4%BA%E4%BE%8B&amp;diff=4218&amp;oldid=prev"/>
		<updated>2021-06-03T17:22:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;关于&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2021年6月4日 (五) 01:22的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;第3行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第3行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 关于 ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 关于 ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;一个完整的Web服务包括以下步骤：&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;一个完整的Web服务包括以下步骤：&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Web服务提供者设计实现Web服务，并将调试正确后的Web服务通过Web服务中介者发布，并在UDDI注册中心注册； &lt;/del&gt;（发布）&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;“Web 服务提供者”设计实现 Web 服务，并将调试正确后的 Web 服务通过“Web 服务中介者”发布，并在 '''UDDI''' 注册中心注册； &lt;/ins&gt;（发布）&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Web服务请求者向Web服务中介者请求特定的服务，中介者根据请求查询UDDI注册中心，为请求者寻找满足请求的服务； &lt;/del&gt;（发现）&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;“Web 服务请求者”向“Web 服务中介者”请求特定的服务，中介者根据请求查询 UDDI 注册中心，为请求者寻找满足请求的服务； &lt;/ins&gt;（发现）&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Web服务中介者向Web服务请求者返回满足条件的Web服务描述信息，该描述信息用WSDL写成，各种支持Web服务的机器都能阅读；（发现）&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;“Web 服务中介者”向“Web 服务请求者”返回满足条件的 Web 服务描述信息，该描述信息用 '''WSDL''' 写成，各种支持 Web 服务的机器都能阅读；（发现）&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;利用从Web服务中介者返回的描述信息生成相应的SOAP消息，发送给Web服务提供者，以实现Web服务的调用；（绑定）&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;利用从 Web 服务中介者返回的描述信息生成相应的 '''SOAP''' 消息，发送给“Web 服务提供者”，以实现 Web 服务的调用；（绑定）&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#  &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Web服务提供者按SOAP消息执行相应的Web服务，并将服务结果返回给Web服务请求者。（绑定）&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#  &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Web 服务提供者按 SOAP 消息执行相应的 Web 服务，并将服务结果返回给“Web 服务请求者”。（绑定）&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Eijux</name></author>
	</entry>
	<entry>
		<id>http://wiki.eijux.com/index.php?title=Web_Services%EF%BC%9A%E7%AE%80%E5%8D%95%E7%9A%84Java%E7%A4%BA%E4%BE%8B&amp;diff=4217&amp;oldid=prev</id>
		<title>Eijux：​建立内容为“category:Web Services  == 关于 == 一个完整的Web服务包括以下步骤： # Web服务提供者设计实现Web服务，并将调试正确后的Web服…”的新页面</title>
		<link rel="alternate" type="text/html" href="http://wiki.eijux.com/index.php?title=Web_Services%EF%BC%9A%E7%AE%80%E5%8D%95%E7%9A%84Java%E7%A4%BA%E4%BE%8B&amp;diff=4217&amp;oldid=prev"/>
		<updated>2021-06-03T17:19:33Z</updated>

		<summary type="html">&lt;p&gt;建立内容为“&lt;a href=&quot;/%E5%88%86%E7%B1%BB:Web_Services&quot; title=&quot;分类:Web Services&quot;&gt;category:Web Services&lt;/a&gt;  == 关于 == 一个完整的Web服务包括以下步骤： # Web服务提供者设计实现Web服务，并将调试正确后的Web服…”的新页面&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[category:Web Services]]&lt;br /&gt;
&lt;br /&gt;
== 关于 ==&lt;br /&gt;
一个完整的Web服务包括以下步骤：&lt;br /&gt;
# Web服务提供者设计实现Web服务，并将调试正确后的Web服务通过Web服务中介者发布，并在UDDI注册中心注册； （发布）&lt;br /&gt;
# Web服务请求者向Web服务中介者请求特定的服务，中介者根据请求查询UDDI注册中心，为请求者寻找满足请求的服务； （发现）&lt;br /&gt;
# Web服务中介者向Web服务请求者返回满足条件的Web服务描述信息，该描述信息用WSDL写成，各种支持Web服务的机器都能阅读；（发现）&lt;br /&gt;
# 利用从Web服务中介者返回的描述信息生成相应的SOAP消息，发送给Web服务提供者，以实现Web服务的调用；（绑定）&lt;br /&gt;
#  Web服务提供者按SOAP消息执行相应的Web服务，并将服务结果返回给Web服务请求者。（绑定）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
创建服务端/客户端项目，项目可以是 Java Web 项目，也可以是普通的 Java 项目：&lt;br /&gt;
: [[File:WebServices：Java：创建项目.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== 服务端 ===&lt;br /&gt;
# 通过 '''javax.jws.WebService''' 注解提供服务；&lt;br /&gt;
# 通过 '''javax.xml.ws.Endpoint''' 类的 '''publish''' 方法来发布服务，并提供发布的地址以及发布的服务类；&lt;br /&gt;
&lt;br /&gt;
代码：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Java&amp;quot; highlight=&amp;quot;3,4,6&amp;quot;&amp;gt;&lt;br /&gt;
package com.eijux.wsServer;&lt;br /&gt;
&lt;br /&gt;
import javax.jws.WebService;&lt;br /&gt;
import javax.xml.ws.Endpoint;&lt;br /&gt;
&lt;br /&gt;
@WebService&lt;br /&gt;
public class Function {&lt;br /&gt;
    // 可以显示指定服务的“operationName”（client中调用）&lt;br /&gt;
    @WebMethod(operationName=&amp;quot;sayHello1&amp;quot;)&lt;br /&gt;
    public String sayHello(String userName)&lt;br /&gt;
    {&lt;br /&gt;
        return &amp;quot;Hello,&amp;quot;+userName+&amp;quot;!&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
            &lt;br /&gt;
    @WebMethod(operationName=&amp;quot;sayHello2&amp;quot;)&lt;br /&gt;
    public String sayHello(){&lt;br /&gt;
        return &amp;quot;Hello World!&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    // 如果不指定“operationName”，则与方法名相同&lt;br /&gt;
    @WebMethod&lt;br /&gt;
    public String transWords(String words){&lt;br /&gt;
        String res = &amp;quot;&amp;quot;;&lt;br /&gt;
        for(char ch : words.toCharArray()){&lt;br /&gt;
            res += ch+&amp;quot;,&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        return res;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        // 使用Endpoint(终端)类发布webservice&lt;br /&gt;
        Endpoint.publish(&amp;quot;http://localhost:8089/service/function&amp;quot;, new Function());&lt;br /&gt;
        System.out.println(&amp;quot;Publish Success&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
服务发布成功后，访问发布的地址：&lt;br /&gt;
: [[File:WebServices：Java：发布服务.png|800px]]&lt;br /&gt;
点击链接，打开 WSDL 配置：&lt;br /&gt;
: [[File:WebServices：Java：WSDL 配置.png|800px]]&lt;br /&gt;
&lt;br /&gt;
=== 客户端 ===&lt;br /&gt;
通过工具生成客户端代码：&lt;br /&gt;
# 命令行工具：&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; highlight=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
wsimport -d .class文件的输出目录 -s .java文件的输出目录 -p “生成类所在包名” -keep “wsdl发布地址”&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#: 示例：&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; highlight=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
wsimport -s D:\Workspaces\JAVA\TheClient\src -p com.eijux.wsClient -keep http://localhost:9095/service/function?wsdl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Eclipse工具：&lt;br /&gt;
#: [[File:WebServices：Java：Eclipse工具使用1.png|400px]]&lt;br /&gt;
#: [[File:WebServices：Java：Eclipse工具使用2.png|400px]]&lt;br /&gt;
#: [[File:WebServices：Java：Eclipse工具使用3.png|400px]]&lt;br /&gt;
#: [[File:WebServices：Java：Eclipse工具使用4.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
代码：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Java&amp;quot; highlight=&amp;quot;3,4,6&amp;quot;&amp;gt;&lt;br /&gt;
package com.eijux.wsClientTest;&lt;br /&gt;
&lt;br /&gt;
import javax.rmi.RemoteException;&lt;br /&gt;
import javax.xml.rpc.ServiceExceptipn;&lt;br /&gt;
// 如果 Client 与生成的代码不在同一目录，需要引入对应的包&lt;br /&gt;
// 需要引入的包在生成代码中&lt;br /&gt;
import com.eijux.wsServer.Function;&lt;br /&gt;
import com.eijux.wsServer.FunctionService;&lt;br /&gt;
import com.eijux.wsServer.FunctionServiceLocator;&lt;br /&gt;
&lt;br /&gt;
public class TestWs {&lt;br /&gt;
    public static void main(String[] args){&lt;br /&gt;
        try{&lt;br /&gt;
            //Function f = new FunctionService().getFunctionPort();&lt;br /&gt;
            Function f = new FunctionServiceLocator().getFunctionPort();&lt;br /&gt;
            &lt;br /&gt;
            System.out.println(f.sayHello1(&amp;quot;eijux&amp;quot;));&lt;br /&gt;
            System.out.println(f.sayHello2(&amp;quot;&amp;quot;));&lt;br /&gt;
            System.out.println(f.getValue(&amp;quot;zl&amp;quot;));&lt;br /&gt;
        }&lt;br /&gt;
        catch(ServiceExceptipn e){&lt;br /&gt;
            e.printStackTrace();&lt;br /&gt;
        }&lt;br /&gt;
        catch(RemoteException e){&lt;br /&gt;
            e.printStackTrace();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
可能的异常：&lt;br /&gt;
# 服务端：&amp;lt;code&amp;gt;runtime modeler error: Wrapper class com.eijux.wsServer.jaxws.GetValue is not found. Have you run APT to generate them?&amp;lt;/code&amp;gt;&lt;br /&gt;
#: JDK 版本过低（低于1.6.0_17）：调整该服务端项目所引用的 JDK 版本。&lt;br /&gt;
# 生成命令：&amp;lt;code&amp;gt;directory not found: D:\Workspaces\JAVA\The Client\src&amp;lt;/code&amp;gt;&lt;br /&gt;
#: 路径有空格。&lt;br /&gt;
# 生成命令：&amp;lt;code&amp;gt;[ERROR] failed.noservice=Could not find wsdl:service in the provided WSDL(s):&amp;lt;/code&amp;gt;&lt;br /&gt;
#: 生成命令的“wsdl发布地址”末尾缺少“?wsdl”。&lt;br /&gt;
&lt;br /&gt;
== 参考 ==&lt;br /&gt;
# [https://www.cnblogs.com/AlanLee/p/6933073.html cnblogs：WebService入门实例教程]&lt;br /&gt;
# [https://blog.csdn.net/gtlishujie/article/details/73527711 csdn：Java WebService 简单小实例]&lt;br /&gt;
# [https://www.jianshu.com/p/694aee68725d 简书：极致精简的webservice例子--Java版]&lt;/div&gt;</summary>
		<author><name>Eijux</name></author>
	</entry>
</feed>