`
schy_hqh
  • 浏览: 543181 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

SOAP异常处理

 
阅读更多
接口
package com.hqh.soap;
import java.util.List;

import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;

//如果要指定命名空间,那么接口与实现类要显示定义相同的targetNamespace!
@WebService
public interface IMyService {
	
	//服务端可能会抛出Exception,客户端调用如果出错则抛出异常
	@WebResult(name="user")
	public User login(@WebParam(name="username")String username,
					  @WebParam(name="pwd")String pwd) throws UserException;
	
}	


实现类
package com.hqh.soap;

import java.util.ArrayList;
import java.util.List;

import javax.jws.WebService;

@WebService(endpointInterface="com.hqh.soap.IMyService")
public class MyServiceImpl implements IMyService {

	private static List<User> users = new ArrayList<User>();
	
	public MyServiceImpl() {
		users.add(new User(1,"admin","admin"));
	}
	
	@Override
	public User login(String username, String pwd) throws UserException {
		for(User user:users) {
			if(username.equals(user.getName()) && pwd.equals(user.getPwd()))
				return user;
		}
		//这里抛出的异常类型如果与接口中声明的异常类型一致,那么服务端将不抛出此异常,而是直接通过soap message将异常传递到客户端
		throw new UserException("用户不存在");
		//抛出运行时异常与接口声明的异常不同,服务端会自己抛出异常,客户端也能接收到异常信息
//		throw new RuntimeException("用户不存在");
	}

}




服务端开启服务
package com.hqh.soap;

import javax.xml.ws.Endpoint;

public class MyServer {
	public static void main(String[] args) {
		String address = "http://localhost:8888/ms";
		IMyService implementor = new MyServiceImpl();
		Endpoint.publish(address, implementor);
	}
}



客户端通过wsimport命令将wsdl转换为本地java文件
package com.hqh.soap.test;

import static org.junit.Assert.*;

import com.hqh.soap.IMyService;
import com.hqh.soap.MyServiceImplService;
import com.hqh.soap.UserException_Exception;


public class Test {

	@org.junit.Test
	public void test() {
		MyServiceImplService serviceImpl = new MyServiceImplService();
		//获取服务接口
		IMyService service = serviceImpl.getMyServiceImplPort();
		try {
			service.login("za", "123");
		} catch (UserException_Exception e) {
			//e.printStackTrace();
			System.out.println(e.getMessage());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

分享到:
评论

相关推荐

    使用try-catch-finally处理异常

    使用try-catch-finally处理异常

    在基于WCF的应用程序中处理SOAP异常

    使用自定义异常处理程序组件

    LiveConfig-SOAP-SDK:一个用于快速启动LiveConfig SOAP API的小脚本。 异常处理,配置文件,日志,多服务器,并且非常易于扩展

    该脚本旨在促进LiveConfig的SOAP API的引入和处理。 范围 预定义的配置文件 轻松更改配置 同时连接到多台服务器 用自己的代码轻松扩展 记录错误 轻松整合验证 灵活,可配置的最小细节 许多功能示例 #开始 ##系统...

    gus-soap-integration:这是一个使用SOAP协议从GUS(https

    使用RestControllerAdvice的异常处理 国际化 居住 技术栈 Sprint Boot 网页服务 玛文 码头工人 赫鲁库 使用Docker构建应用 构建docker build . --tag gus-soap-integration 运行(在Docker容器中设置服务器端口并将...

    ws-demo:使用外部 REST 服务的简单的基于 CXF 的 SOAP 服务

    我喜欢什么它比较好地支持异常到SOAP 错误消息的转换。 另一方面,重置将异常转换为的 XML 元素的名称不起作用...... 细节: 问题从Eclipse生成WSDL 服务 URI 构建不正确更改时, cxf-beans.xml完全限定类名 (FQC) ...

    php中curl和soap方式请求服务超时问题的解决

    思路就是判断curl或者soap连接不上对方服务器时候,抛出TimeoutException异常,捕获后做重试处理,其它错误导致的抛出的Exception则按失败处理。 curl处理 $ch = curl_init($url); $options = array( CURLOPT_...

    WebService

    Web Services 是通过一系列标准和协议来保证程序之间的动态连接。其中最基本的协议包括:SOAP, WSDL, UDDI SOAP: 是“Simple Object Access Protocol”的缩写,SOAP是消息传递的协议,... 异常处理以及其他的相关信息.

    cxf-spring-boot-starter:由Spring Boot和Apache CXF支持的企业和生产就绪的SOAP Web服务

    定制您自己的自定义SOAP错误,这些错误符合XML模式内部定义的异常 SOAP测试框架:使用XmlUtils可以简化JAX-B类处理工作,并使用SOAP Raw Client可以针对端点测试格式错误的XML 与JDK 8、9和11ff一起使用 文献资料 ...

    Python研究 从新手到高手 Dive Into Python 中文版

    6.异常和文件处理 7.正则表达式 8.HTML处理 9.XML处理 10.Scripts和Streams 11.HTTP Web服务 12.SOAP Web服务 13.单元测试 14.以测试优先为原则的编程 15.重构 16.有效编程 17.动态函数 18.性能优化"&gt;Python 从新手...

    使用WCF客户端从Web服务处理SoapException详细信息

    如何在WCF客户端中捕获和处理基于ASMX的SOAP异常。

    python入门学习资料

    第 6 章 异常和文件处理 第 7 章 正则表达式 第 8 章 HTML 处理 第 9 章 XML 处理 第 10 章 脚本和流 第 11 章 HTTP Web 服务 第 12 章 SOAP Web 服务 第 13 章 单元测试 第 14 章 测试优先编程 第 15 章 重构 第 16...

    Android代码-OkHttp3

    OkHttp3 基于OkHttp3封装的网络请求库 功能点 ...支持同步/异步请求 支持异步延迟执行 支持Post/Get/Put/Delete请求 支持Cookie持久化,支持...支持请求结果拦截以及异常处理拦截 支持单例客户端,提高网络请求速率 完整

    WebService处理大数据量数据.pdf

    WebService处理⼤数据量数据 处理⼤数据量数据 在通过WebService处理⼤数据量数据时出现如下错误: soap fault: 运⾏配置⽂件中指定的扩展时出现异常。 ---&gt; 超过了最⼤请求长度。 解决⽅法: 因为上传的⽂件⼤于...

    Ehcache分布式缓存与其在SpringBoot应用

    它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个 gzip 缓存 servlet 过滤器,支持 REST 和 SOAP api 等特点。  优点: 1)快速 2)简单 3)多种缓存策略 4)缓存数据有两级:内存和磁盘...

    中国移动MMS规范.rar

    12.6 一般错误处理 60 12.6.1 正常操作 61 12.6.3 信息单元 61 12.7 分发表的管理 61 12.8 MM7摘要消息的实现 62 12.8.1 SOAP消息格式和编码原则 62 12.8.1 绑定至HTTP 62 12.8.2 SOAPAction报头字段 64 12.8.2 MM7...

    ehcache.jar(含源码)

    它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点。 Ehcache最初是由Greg Luck于2003年开始开发。2009年,该项目被Terracotta购买。软件仍然是开源,...

    spring+ehcache实例demo

    它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点。 Ehcache最初是由Greg Luck于2003年开始开发。2009年,该项目被Terracotta购买。软件仍然是开源,...

    PYTHON深入学习 XML HTML

    内置数据类型,自省的威力,对象和面向对象,异常和文件处理,正则表达式,HTML处理,XML处理,Scripts 和 Streams,HTTP Web服务,SOAP Web服务,单元测试......

    PHP高级程序设计_模式、框架与测试

     第11章 SPL文件和目录处理  第12章 SPL数组重载  第13章 SPL异常 第四部分 MVC模式  第14章 MVC架构  第15章 Zend框架简介  第16章 Zend框架高级功能  第17章 应用Zend框架 第五部分 Web 2.0  第...

Global site tag (gtag.js) - Google Analytics