利用JDK发布webService实例「建议收藏」

利用JDK发布webService实例「建议收藏」一、webService的发布1、新建一个webProject2、修改jdk为1.6及以上—-3、编写方法—- packagecom.test.webService;importjavax.jws.WebService;importjavax.xml.ws.Endpoint;@WebServicepublicclass

大家好,又见面了,我是你们的朋友全栈君。

一、webService的发布
1、新建一个web Project

ss

2

2、修改jdk为1.6及以上—-

3
4
5
6

3、编写方法—-


 package com.test.webService; import javax.jws.WebService; import javax.xml.ws.Endpoint; @WebService public class webServiceTest {  public int add(int n){  int sum=0;  for(int i=0;i<n;i++){  sum+=i;  }     return sum;  }  public String sub(int n){  int temp=100;  for(int i=0;i<n;i++){  temp-=i;  }     return "差为"+temp+"";  }  /**   * @param args   */  public static void main(String[] args) {  //Endpoint:jdk提供的专门用来发布服务的类  //publish()方法有两个参数,第一个是本地服务的地址,第二个是本地提供服务的类  Endpoint.publish("http://localhost:9090/webService/webServiceTest", new webServiceTest());         System.out.println("webService发布成功!");  } }
解释如下—
1、用Jdk1.6.0_21以后的版本发布一个WebService服务.与Web服务相关的类,都位于javax.xml.ws.*包中。 
2、主要类有: 
a) @WebService - 它是一个注解,用在类上指定将此类发布成一个webservice服务. 
b) Endpoint – 此类为端点服务类,它的方法publish用于将一个已经添加了@WebService注解对象绑定到一个地址的端口上。Endpoint是jdk提供的一个专门用于发布服务的类,它的publish方法接收两个参数,一个是本地的服务地址,二是提供服务的类。它位于javax.xml.ws.*包中。 
static
Endpoint.publish(String address, Object implementor) 在给定地址处针对指定的实现者对象创建并发布端点。stop方法用于停止服务。
 
其他注意事项: 
1)
给类添加上@WebService注解
后,类中所有的非静态方法都将会对外公布。不支持静态方法,final方法。 
2) 如果希望某个方法(非static,非final)不对外公开,可以在方法上添加@WebMethod(exclude=true),阻止对外公开。 
3) 如果一个类上,被添加了@WebService注解,则必须此类至少有一个可以公开的方法,否则将会启动失败。 
4) 服务类中不能没有方法 
5) @WebMethod(exclude=true)屏蔽方法
运行====

8

运行结果—-

9

打开浏览器查看生成的wsdl文档—-

10

二、webService的调用

11
12
13
14

新建一个web Service Client(客户端)

15

然后一直Next,直到finish。最后生成如下文件:

16

新建一个测试类–

17

package com.test.client;

public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		AddFunction a=new AddFunctionService().getAddFunctionPort();//初始化,实例化
		System.out.println("1到100的和为:"+a.add(100));//调用service中的方法
		System.out.println(""+a.sub(10));

	}

}
19

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162647.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月21日 下午2:00
下一篇 2022年7月21日 下午2:16


相关推荐

  • 小数转int类型_怎样对结构体进行大小端转换

    小数转int类型_怎样对结构体进行大小端转换int16大小端转换:staticinlineuint16_tbswap_16(uint16_tx){  return(x>>8)|(x}int32大小端转换:staticinlineuint32_tbswap_32(uint32_tx){  x=((x>8)&0x00FF00FF); 

    2022年8月15日
    6
  • 默认情况下安装的应用程序C盘后提示权限不足,当你开始介意。。。

    默认情况下安装的应用程序C盘后提示权限不足,当你开始介意。。。

    2022年1月5日
    62
  • Java网络爬虫(七)–实现定时爬取与IP代理池

    Java网络爬虫(七)–实现定时爬取与IP代理池注:对代码及思路进行了改进—Java网络爬虫(十一)–重构定时爬取以及IP代理池(多线程+Redis+代码优化)定点爬取当我们需要对金融行业的股票信息进行爬取的时候,由于股票的价格是一直在变化的,我们不可能手动的去每天定时定点的运行程序,这个时候我们就需要实现定点爬取了,我们引入第三方库quartz的使用:packagetimeutils;importorg.quart

    2022年5月5日
    161
  • C++字符串格式化的几种方式

    C++字符串格式化的几种方式使用 snprintf 使用 boost format 使用 stringstream 具体示例使用 snprintf include stdio h usingstd string 准备数据 stringhaha haha intnum 3 准备格式 stringfmt teststring s testnumber stdio h

    2025年11月10日
    4
  • 2的31次方与2的负31次方

    2的31次方与2的负31次方最高位符号位 0 表示正数 1 表示负数 典型的补码表示 32 位数自然能表示 2 的 32 次方个数 2 的 32 次方 无符号 带符号再除以 2 负数比正数多一个 为什么正数比负数多一个 因为有一个正 0 000000000000 一个负 0 000000000000 那个 0 呢就被

    2026年3月18日
    3
  • mysql行转列转换

    mysql行转列转换mysql行列转换,在项目中应用的极其频繁,尤其是一些金融项目里的报表。其中最为头痛的就是多行转多列,动态的列行转换。最近在研究这些行里转换,还是从最为简单的行列转换开始。sql脚本–创建表学生表CREATETABLE`student`(`stuid`VARCHAR(16)NOTNULLCOMMENT’学号’,`stunm`VARCHAR(20

    2022年6月14日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号