- 浏览: 558064 次
- 性别:
文章分类
- 全部博客 (337)
- WEB前端@HTML (4)
- WEB前端@CSS (5)
- WEB前端@javascript (31)
- WEB前端@DHTML (8)
- WEB前端@jQuery (3)
- WEB前端@Flex4 (19)
- WEB前端@BootStrap3 (21)
- 数据交换@JSON (1)
- 模板标签@JSTL (1)
- 模板标签@Thymeleaf (1)
- 模板标签@XSL-FO (3)
- WEB后台@JavaSE (75)
- WEB后台@JAX-WS (27)
- WEB后台@HttpClient (0)
- WEB后台@SSO (2)
- 框架@Spring3 (3)
- 框架@spring_MVC (8)
- 框架@Hibernate (26)
- 框架@play framework (18)
- 框架@sl4j (4)
- 数据库@ (2)
- 数据库@JDBC (0)
- 服务器@Linux (14)
- 服务器@Tomcat (2)
- 第三方jar@dom4j (1)
- 第三方jar@POI (2)
- 第三方jar@CXF (5)
- 项目管理@Maven (22)
- 项目管理@SVN (1)
- 缓存管理@ehcache (1)
- 系统设计@设计模式 (10)
- 单元测试@JunitTest (1)
- 开发工具 (3)
- BUG收录 (1)
- 学习之路 (6)
- 面试之道 (1)
- 我的项目 (2)
最新评论
-
superich2008:
logback配置文件的改动会导致应用重新加载,多改动几次后就 ...
Chapter 3: Logback configuration -
chenzhihui:
不是可以在log4j中配置以控制台或者文件方式保存日志的?
play记录日志 -
smilease:
很棒,正缺这个,非常感谢
bootstrap3-typeahead 自动补全 -
guangling13345:
[size=x-small][/size]
二级联动菜单 -
jacksondesign:
有,和YAML的格式有关,不知道有没有什么好的YAML格式的验 ...
(四)play之yabe项目【页面】
接口
实现类
服务端开启服务
客户端通过wsimport命令将wsdl转换为本地java文件
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(); } } }
发表评论
-
实际应用-使用xsd定义Model对象
2014-02-27 02:24 1325使用schema定义Model 好 ... -
XJC 将schema转换为java类
2013-08-28 09:55 1863使用xjc(xml java change)将schema转 ... -
Webservice中获取Servlet的相关对象
2013-08-15 17:44 2888第一种方式: 通过注入WebServiceContex ... -
JAX与spring的无缝集成---增加Handler和Exception(二)
2013-08-15 16:00 2009客户端也使用spring集成JAX-WS。但是有一个问题需 ... -
Exception处理:服务端返回对象与客户端类型不一致XXX cannot be cast to XXX
2013-08-15 13:52 2619描述: 服务端向客户端返回数据时,发生类型转 ... -
JAX与spring的无缝集成(一)
2013-08-13 13:45 6629JAX-WS与spring集成有几 ... -
使用契约优先---重要注意事项
2013-08-11 22:23 1018使用契约优先编写schema和wsdl文件时,一般都是在ws ... -
通过HEADER传递信息-做权限控制
2013-08-08 18:11 2031通过HEADER而不是BODY传递“LICENSE” ... -
webservice传递二进制数据(文件)
2013-08-08 16:14 2311将二进制数据放到Attachment中进行传递,而不是放到 ... -
发布webservice到tomcat
2013-08-07 09:39 3055目标: 基于契约优先的webservice功能开发 ... -
基于契约优先的隐式头信息处理
2013-08-03 20:05 1233<?xml version="1.0&qu ... -
基于契约优先来编写webservice
2013-08-03 18:40 1225开发流程: 1.先写schema ... -
通过Handler添加HEADER
2013-08-03 14:05 2053LogicHandler 只能获取SOAPBody的信息 ... -
深入SOAP发送消息的过程(SAAJ)
2013-07-28 18:54 2116SOAP结构体 SOAPMessage SOAPPa ... -
使用Transformer更新XML
2013-07-27 14:46 2788package com.hqh.stax; impo ... -
使用XMLStreamWriter写XML
2013-07-27 14:10 4032package com.hqh.stax; im ... -
使用java提供的XPATH处理xml
2013-07-27 13:10 986books.xml <?xml version=&q ... -
使用Stax处理XML
2013-07-27 10:57 1288java提供的XML处理 Stax处 ... -
使用JAXB完成XML与java对象的转换
2013-07-27 10:05 2159SAX 处理超大xml时使用 do ... -
XML_Schema
2013-07-22 16:27 1377Schema的好处 schema出现的目的:通过一个更加合理的 ...
相关推荐
6. **SOAP异常处理**: - SOAP错误通常通过SOAP Fault来表示,它是一个包含错误信息的SOAP消息。 - 在Java中,`SOAPFaultException`是抛出SOAP故障的常见方式。 7. **SOAP安全**: - SOAP消息可以通过HTTPS进行...
Spring-WS 提供了 SOAP 异常处理机制。当服务端点抛出异常时,Spring-WS 可以自动将其转换为 SOAP 错误消息,这样客户端就能得到关于错误的详细信息。 **6. 源码分析** 在标签"源码"下,我们可以看到博主可能分享了...
当SOAP请求失败时,`laravel-soap`会抛出异常,你可以捕获这些异常来处理错误。例如: ```php try { $response = $client->__soapCall('MethodName', $params); } catch (\WsScgi\LaravelSoap\Exceptions\...
例如,我们可以增加对异常的捕获和处理,优化日志记录,或者将结果存储到数据库或展示给用户。 8. **最佳实践**:在实际应用中,为了提高代码的可读性和可维护性,建议封装SOAP调用到单独的服务类或方法中。此外,...
- 错误处理:MFC和gSoap都会抛出异常,确保捕获并适当地处理这些异常。 - 性能优化:SOAP通信可能会有较高的开销,考虑缓存和批量操作以提高效率。 - 安全性:确保通信过程中的数据加密和身份验证,例如使用HTTPS或...
当遇到不规则SOAP消息时,开发者可能需要深入理解CXF的工作原理,包括其消息模型、绑定层以及异常处理机制,以便正确地捕获和处理问题。 描述中提到的博客链接(https://huiseyiyu.iteye.com/blog/1172161)可能是...
每个Handler都可以决定是否终止处理链,这通常用于异常处理或消息验证。 3. **Handler实现**:在Java中,SOAP Handler是通过实现`javax.xml.soap.SOAPHandler<SOAPMessageContext>`接口来创建的。这个接口定义了`...
Encoded风格是SOAP规范第5节中定义的,它使用了一套特殊的编码规则来表示复杂的数据类型,允许处理各种变体。然而,Encoded方式可能会导致消息处理更为复杂,因为它需要接收方理解并处理这些编码规则。 Literal风格...
在编程领域,异常处理是确保程序健壮性的重要机制。当程序运行过程中遇到错误或异常情况时,如果没有妥善处理,可能会导致程序崩溃。Java、C#等许多编程语言提供了异常处理框架,其中“try-catch-finally”是常用的...
4. **异常处理**:针对SOAP通信中可能出现的错误和异常的处理逻辑。 5. **类型映射**:将Java对象转换为SOAP消息中的XML表示,反之亦然。 6. **命名空间支持**:处理SOAP消息中XML元素的命名空间。 7. **安全功能**...
这通常涉及到解析和生成XML请求和响应,以及处理数据转换和异常处理等复杂工作。封装后的SOAP库,能够降低开发难度,使开发者更专注于业务逻辑,而非底层通信细节。 【使用方法】 根据描述,此项目包含了详尽的注释...
在基于Windows Communication Foundation (WCF) 的应用程序中,处理SOAP异常是确保服务稳定性和健壮性的重要环节。SOAP异常是WCF服务在遇到错误时抛出的,它们以SOAP消息的形式封装了错误信息,以便跨网络传递。本篇...
CXF允许自定义SOAP消息处理器,实现特定的逻辑,如添加自定义头信息、处理异常等。这可以通过实现MessageObserver接口来完成。 6. **安全性与认证** CXF支持多种安全模型,包括基本认证、digest认证、SSL/TLS、WS...
Header包含了与消息处理相关的元数据,Body是消息的主要内容,而Envelope则定义了整个消息的结构。 创建SOAP消息的方式多种多样,主要通过编程语言中的库或框架来实现。例如,在Java中,我们可以使用JAX-WS(Java ...
2. SOAP与C++结合:由于标签中提到了"soap_c++",这意味着示例可能演示了如何在C++代码中集成SOAP Toolkit 2.0,创建SOAP客户端和服务端,处理数据类型映射,以及异常处理等。 3. 物流应用:标签中提到了"物流",这...
错误处理也很重要,需要检查异常并适当地处理它们。 6. **Apache CXF**:除了JAX-WS,Apache CXF也是一个流行的Java SOAP库,提供更高级的功能,如WS-Security和WS-Addressing支持。 7. **测试SOAP Web服务**:在...
- 处理可能出现的异常,如网络错误、解析错误等。 - 对于大型项目,考虑使用依赖注入框架(如Dagger)来管理和实例化Soap2Android客户端。 通过这个Soap2Android实例,开发者可以学习如何更高效、更优雅地在...
- 错误处理机制:对于可能出现的错误,需要有良好的异常处理机制。 - 安全性:使用HTTPS协议确保通信安全,避免敏感信息泄露。 - 性能优化:合理设计并发处理策略,提高服务的响应速度和稳定性。 8. **最佳实践*...