java 新建 api 案列_Java利用webservice创建接口案例源码

环境要求:

JDK1.7,并配置Java的环境变量

BaseDao  接口:

/**

* 要使得成为一个可供访问的接口,必须添加:@WebService

* */

@WebService

public interface BaseDao {

//添加一个加法的接口

@WebResult(name="addddddre")

public int add(@WebParam(name="add01")int a,@WebParam(name="add02")int b);

public String t(String a,String b);

public User login(String usename,String password);

}

BaseDaoImpl:

/**

* endpointInterface  是接入点的配置(提供给访问者,访问哪里)

* */

@WebService(endpointInterface="com.sram.dao.BaseDao")

public class BaseDaoImpl implements BaseDao{

@Override

public int add(int a, int b) {

// TODO Auto-generated method stub

System.out.println("a+b的和为"+(a+b));

return a+b;

}

@Override

public String t(String a, String b) {

// TODO Auto-generated method stub

return a+b;

}

@Override

public User login(String username, String password) {

// TODO Auto-generated method stub

System.out.println("username"+username+","+"password"+password);

return new User(username,password);

}

}

添加接口服务:

MyServer.java

public class MyServer {

public static void main(String[] args) {

//添加服务,确定在网上发布的地址

String url="http://localhost:8888/sram";

//发布接口

Endpoint.publish(url, new BaseDaoImpl());

}

}

MyClient:客户端访问接口:

/**

* 定义访问的客户端:

* */

public class MyClient {

public static void main(String[] args) {

URL url;

try {

url = new URL("http://localhost:8888/sram?wsdl");

QName qname = new QName("http://impl.dao.sram.com/","BaseDaoImplService");

//根据服务的名称创建service

Service service = Service.create(url,qname);

//获取接口

BaseDao dao = service.getPort(BaseDao.class);

//通过wsdl转换成Java对象。没有依赖Java程序,但依赖Java接口。

System.out.println(dao.add(3, 5));

/**

* 成功调用服务端的接口,实现功能,但是有问题。

*

* 1,服务商不可能把接口名提供给你。

*

* 2,如果服务器系统使用.NET开发没有接口。所以,咱们写的

* 客户端不应该依赖服务器平台。

* */

System.out.println(dao.t("test1", "test2"));

} catch (MalformedURLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

注意:第一种访问依赖接口BaseDao,不推荐:

方式2:

利用wsimport生成不依赖平台的客户端访问类。

具体办法:打开控制台,在控制台端生成访问文件(前提:需要配置Java的环境变量)

-d 指明生成的目录

-keep 保留Java代码

-verboss 输出生成详细信息

d:/test 为生成代码的地址

生成客户端访问服务器接口的代码:

wsimport -d d:/test -keep -verbose http://localhost:8888/sram?wsdl

生成之后,将其拷贝到访问项目中,再次利用MyClient类,将BaseDao导入地址改为生成文件中的接口的地址。

再次访问,OK!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/558539.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java通用异常_Java常用异常整理

填坑,整理下Java的常用异常。正确使用异常在实际编码中非常重要,但面试中的意义相对较小,因为对异常的理解和应用很难通过几句话或几行代码考查出来,不过我们至少应答出三点:异常类的继承关系、常用异常类、常用异常类…

mysql 读取properties_JDBC中使用Properties读取配置文件有什么用

开发中获得连接的4个参数(驱动、URL、用户名、密码)通常都存在配置文件中,方便后期维护,程序如果需要更换数据库,只需要修改配置文件即可。使用properties文件,Java中有专门用来装载配置文件的类Properties(Java.util.Properties)…

java preferences设置_Java利用Preferences设置个人偏好

Preferences的中文意思即偏好或喜好的意思,也就是说同一个程序在每次运行完后,可以通过Preferences来记录用户的偏好,下次启动时,程序会利用这些信息来了解用户的喜好。而这些信息个人理解应该就是存储在系统的注册表中。下面我们…

java 移动页面中的图片上传_移动端上传图片(ajax跨域请求)

第一次写项目开发经验,望担待。除了前端以外的事就不叨叨了,下面开始弄干活(两个页面首页、列表页)。项目开发简述项目需求:上传图片并展示。项目地址:项目的链接地址开发工具:sublime后台:java开发语言&am…

java 空包_圆通快递接口,圆通快递礼品商城接口、圆通空包接口,圆通快递低价接口,礼品商城接口、一件代发接口...

更新仓库列表接口地址:http://xxxxxx.com/shop/updates/update-warehouse-list 违心:juzivtu接口介绍:更新发货仓库及发货快递信息请求方式:POST传参方式:JSON返回格式:JSON接口收费:开通一次,…

c和java内存泄漏区别_内存溢出和内存泄漏的区别(转)

1.1内存溢出:(Out Of Memory---OOM)系统已经不能再分配出你所需要的空间,比如你需要100M的空间,系统只剩90M了,这就叫内存溢出例子:一个盘子用尽各种方法只能装4个果子,你装了5个,结果掉倒地上不…

php正则表达式匹配逗号,数字和逗号PHP正则表达式只

我需要创建一个正则表达式验证逗号分隔的数值。数字和逗号PHP正则表达式只他们应该是这样的:1,2,3,4,5等....的值必须是一个数字,如:1点之前或之后没有空的空间,没有逗号之前或之后。或者......多个数值以逗号分隔。第一个和最后一…

java想要生成 字符串,如何在Java中“优雅地”生成String?

我想生成一个字符串,如sql命令:"INSERT INTO xxx VALUES(XXX, XXX, XXX)"目前我使用StringBuilder和一些String常量,如“INSERT INTO”来连接表名和插入值的输入String参数.但是,除了性能问题之外,这种简单的连接看起来并不优雅.有没有其他方法这样做&…

java语言中json转换,JSON字符串和JAVA语言对象的相互转换教程

本文主要向大家介绍了JSON字符串和JAVA语言对象的相互转换教程,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。一:字符串转换为对象:使用JSON.parse()方法var str { "name": "AndrewNeo", "sex"…

php中的数组用什么统计,php数组元素统计与值汇总

array_count_values()array_count_values() 函数用于统计数组中所有值出现的次数。本函数返回一个数组&#xff0c;其元素的键名是原数组的值&#xff0c;键值是该值在原数组中出现的次数。语法 : array_count_values(array)参数描述array必需。规定输入的数组。例子<?php …

10天时间做出php,php 最近10天的所有日期

背景&#xff1a;有时候&#xff0c;比如画曲线图&#xff0c;需要前一天起近10天的日期&#xff0c;你不能获取昨天的时间一天一天减&#xff0c;可别减出20140230&#xff0c;20140231&#xff0c;这就闹笑话了我用下面的笨方法。$date array();for($i10;$i>1;$i--){$dat…

php cgi漏洞,Nginx + PHP CGI的一个可能的安全漏洞

现在普遍的Nginx PHP cgi的做法是在配置文件中, 通过正则匹配Nginx(PHP/fastcgi的PATH_INFO问题,设置SCRIPT_FILENAME, 今天发现了一个这种方式的安全漏洞.为什么会这样呢?比如, 如下的nginx conf:location ~ .php($|/) {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.p…

java开发怎么优化代码,代码优化,该如何处理

当前位置:我的异常网 Java Web开发 代码优化,该如何处理代码优化,该如何处理www.myexceptions.net 网友分享于&#xff1a;2014-08-19 浏览&#xff1a;0次代码优化public String Txt() throws ParseException {re (HttpServletRequest) ActionContext.getContext().get(S…

kali2.0安装mysql,Ubuntu/kali上安装MySQL,设置远程访问详细教程

搜索热词Ubuntu上安装MysqL非常简单只需要几条命令就可以完成。1. sudo apt-get install MysqL-server2. apt-get installMysqL-client (可选)3. sudo apt-get install libMysqLclient-dev(可选)安装过程中会提示设置密码什么的&#xff0c;注意设置了不要忘了&#xff0c;安装…

php数组在golang,go语言数据类型-数组(array)

数组是Go语言编程中最常用的数据结构之一。顾名思义&#xff0c;数组就是指一系列同一类型数据的集合。数组中包含的每个数据被称为数组元素(element)&#xff0c;一个数组包含的元素个数被称为数组的长度。在Go语言中数组是一个值类型(value type)。是真真实实的数组&#xff…

php session 反序列化,PHP SESSION反序列化本地样例分析

PHP SESSION反序列化本地样例分析0X00漏洞原因主要原因是&#xff1a; ini_set(‘session.serialize_handler’, ‘php_serialize’);ini_set(‘session.serialize_handler’, ‘php’);两者处理session的方式不同。0X01漏洞分析如果在PHP在反序列化存储的$_SESSION数据时使用的…

php 标题去重复思想,WordPress网站发布文章时如何防止发布重复标题的文章?

事实上&#xff0c;所有插件后端代码都等同于将代码片段添加到functions.php中&#xff0c;functions.php代码片段可以生成插件&#xff0c;然后插件可以自然地集成到functions.php中。插件主要易于管理&#xff0c;但也增加了静态资源请求的数量。如果您知道如何处理这些请求&…

php前端介绍,Web前端的开发前景介绍

“路漫漫其修远兮&#xff0c;吾将上下而求索”&#xff0c;这句出自《离骚》。虽然端午已过&#xff0c;但是还是不影响一个程序员想表(zhuang)达(boy)自己此刻心情的冲动。偶然路过同事旁边&#xff0c;不(tou)小(kan)心看到他加的一个群&#xff0c;在问&#xff0c;web前端…

hive mysql命令,Hive数据库常用命令

收藏一些Hive数据库常用命令&#xff0c;方便平时准备测试数据集。查看库、创建普通Hive表&#xff1a;show databases;user lch_databases;show tables;create table lch_user_table(int id,name varchar(8),birthday date,salary double(24.7),dd1 decimal(18,4));alert tabl…

判断星座PHP,php根据日期判断星座的函数分享_PHP教程

复制代码 代码如下:function yige_constellation($month, $day) {// 检查参数有效性if ($month < 1 || $month > 12 || $day < 1 || $day > 31) return false;// 星座名称以及开始日期$constellations array(array( "20" > "宝瓶座"),arra…