网站用什么平台开发加强网站建设和管理的通知

web/2025/9/26 9:12:29/文章来源:
网站用什么平台开发,加强网站建设和管理的通知,口碑好的家装前十强,找做金融的网站apache cxf在过去的几天中#xff0c;我一直在进行从JBoss 4到Wildfly 8的应用程序迁移。 该应用程序使用了不同的技术#xff0c;但是我们这里将重点放在XML Web Services JAX-WS上 。 是的#xff0c;我知道它们不再流行了#xff0c;但是它们是很久以前开发的#xff0… apache cxf 在过去的几天中我一直在进行从JBoss 4到Wildfly 8的应用程序迁移。 该应用程序使用了不同的技术但是我们这里将重点放在XML Web Services JAX-WS上 。 是的我知道它们不再流行了但是它们是很久以前开发的因此需要维护以解决兼容性问题。 无论如何迁移这些服务的途径并不容易。 我正在分享一些问题和修补程序希望它们可以帮助其他在那里遇到相同问题的开发人员。 样本定义 这是旧系统JBoss 4中Web服务定义的示例 javax.jws.WebService(endpointInterface some.pack.age.WebService) javax.jws.soap.SOAPBinding(style SOAPBinding.Style.DOCUMENT) org.jboss.ws.annotation.EndpointConfig(configName Standard WSSecurity Endpoint) javax.jws.HandlerChain(file handlers.xml) org.jboss.ws.annotation.SchemaValidation(enabled true, errorHandler CustomErrorHandler.class) public class WebServiceImpl implements WebService { 幸运的是大多数定义都使用标准的Java EE注释。 只有org.jboss.ws.annotation.EndpointConfig和org.jboss.ws.annotation.SchemaValidation来自旧的JBossWS库。 我们可以轻松摆脱org.jboss.ws.annotation.EndpointConfig因为在新的应用程序中我们将不需要它。 作为参考它用于设置要通过端点预定义的额外配置数据。 检查文档预定义的客户端和端点配置 。 我们要保留org.jboss.ws.annotation.SchemaValidation 。 作为参考此批注根据端点wsdl契约中的相关模式验证传入和传出SOAP消息。 由于注释不再存在于JBossWS中我们必须使用Apache CXF 这是Wildfly上JAX-WS的基础实现。 问题 这是我遇到的一些问题 SchemaValidation批注 注释org.jboss.ws.annotation.SchemaValidation不再存在。 您必须使用来自Apache CXF的注释org.apache.cxf.annotations.SchemaValidation 。 添加以下Maven依赖项以使用Apache CXF批注 dependencygroupIdorg.apache.cxf/groupIdartifactIdcxf-api/artifactIdversion2.7.11/versionscopeprovided/scope /dependency 另外请注意在原始注释中我们可以定义errorHandler属性。 旧的应用程序使用自定义错误处理程序来针对架构验证错误设置自定义错误消息。 新注释中没有等效项因此我们需要以另一种方式进行。 为了复制旧的行为我使用了Apache CXF拦截器 。 创建一个拦截器类并扩展AbstractPhaseInterceptor 。 这是一个示例 public class SchemaValidationErrorInterceptor extends AbstractPhaseInterceptorMessage {public SchemaValidationErrorInterceptor() {super(Phase.MARSHAL);}Overridepublic void handleMessage(Message message) throws Fault {Fault fault (Fault) message.getContent(Exception.class);Throwable cause fault.getCause();while (cause ! null) {if (cause instanceof SAXParseException) {fault.setMessage(Invalid XML: fault.getLocalizedMessage());break;}cause cause.getCause();}} } 您可以像这样使用它 org.apache.cxf.interceptor.OutFaultInterceptors(classes SchemaValidationErrorInterceptor.class ) CXF客户端和CXF服务器都使用拦截器。 正在执行传入和传出拦截链以进行常规处理以及发生错误时。 在这种情况下我们要覆盖Schema Validation消息因此我们需要将拦截器绑定到错误输出拦截器链中。 您可以将OutFaultInterceptors注释用于该行为。 每个链均分为多个阶段。 您可以通过在构造函数中传递Phase.MARSHAL来定义希望拦截器运行的Phase.MARSHAL 。 还有其他阶段但是由于我们要更改错误消息因此我们在MARSHAL阶段进行此操作。 不同的WSDL 旧的Web服务具有在部署时自动生成的WSDL文件。 不幸的是在某些情况下JBoss 4和Wildfly 8生成的WSDL是不同的。 这可能会导致您的外部呼叫者出现问题。 在这种情况下主要问题在于架构验证。 在Wildfly 8中执行时在JBoss 4中有效的请求不再有效。 此行为的原因是在目标名称空间中。 如果您在Web Service参数中使用带注释的XmlRootElement 而没有在注释中定义namespace属性则JBoss 4 WS会生成带有黑色命名空间的目标WSDL元素。 如果CWSF元素为空则Apache CXF将使用Web服务默认名称空间来绑定WSDL元素。 作为参考这是通过CXF代码完成的 org.apache.cxf.jaxws.support.JaxWsServiceConfiguration#getParameterName 。 可以通过更改CXF代码来解决此问题但是我们选择将旧生成的WSDL文件放置在迁移的应用程序源中并将其包含在发行版中。 它不再自动生成这意味着如果我们更改API则需要手动生成WSDL。 我们需要小心确保未在WSDL中破坏任何内容。 这种方法似乎比必须维护我们自己的CXF版本更好。 我们可能也可以为此提交修复程序但是我们认为JBoss 4行为不是故意的。 启动CXF 要使用来自CXF的特定API还不足以为其具有项目依赖性。 实际上在我尝试更改的前几次中似乎没有与CXF相关的功能。 发生这种情况是因为Wildfly只在寻找标准的Java EE JAX-WS注释。 为了使所有CXF行为正常工作我们需要告诉Wildfly我们的应用程序依赖于CXF 即使这些库已经在服务器上了。 是的这有点令人困惑。 该应用程序部署在EAR文件中。 因此您需要创建一个jboss-deployment-structure.xml并添加以下内容 jboss-deployment-structuresub-deployment nameapplication.wardependenciesmodule nameorg.apache.cxf//dependencies/sub-deployment/jboss-deployment-structure 如果将WAR文件中的MANIFEST.MF部署在EAR文件中则显然无法使用。 有关更多信息请检查WildFly中的类加载 。 如果您想使用其他CXF功能尤其是与Spring链接的功能则可能会有些棘手。 看一下这篇文章 有关JBoss的各种事实。 事实6JBoss和CXF天造地设 。 最终定义 这应该是我们对Web服务的最终定义 WebService(wsdlLocation WebService.wsdl,endpointInterface some.pack.age.WebService ) SOAPBinding(style SOAPBinding.Style.DOCUMENT) HandlerChain(file /handlers.xml) SchemaValidation(type SchemaValidation.SchemaValidationType.IN) OutFaultInterceptors(classes SchemaValidationErrorInterceptor.class) public class WebServiceImpl implements BDNSWebService { 如您所见将Web服务从JBoss 4迁移到Wildfly所需的更改只是其中的一部分。 但是如果您不了解一些细微的细节可能会长时间阻止您。 也许您有不同的设置并且遇到的问题也有所不同。 如果您只是想通过Wildfly设置CXF 这也可以有所帮助希望本文对您有所帮助。 翻译自: https://www.javacodegeeks.com/2015/05/wildfly-apache-cxf-and-schemavalidation.htmlapache cxf

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

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

相关文章

怎么注册网站名称网站建优化

注意:可使用迁移miniconda文件 or 迁移yaml文件两种方式,推荐前者,基本无bug! 一、迁移miniconda文件: 拷贝旧机器的miniconda文件文件到新机器: 内网拷贝:scp -r mazhf192.168.1.233:~/miniconda3 ~/ 外…

龙岩网站排名wordpress百度主动推送代码

Hadoop完全分布式环境搭建 ps:本人是按照尚硅谷的教程搭建的,版本hadoop2.7,centos版本6,一台主机,两台从机。 一.版本问题 1.尽量使用hadoop版本2,尽量不要使用最新版本3。因为会出现无法解决的问题&…

做网站为什么用php建设农产品网络营销网站

http://blog.csdn.net/sakulafly/article/details/40888143 转载于:https://www.cnblogs.com/luningning0901/p/4626749.html

求个没封的w站2021软件eclipse网站开发

shell命令和bash命令相同,指的是命令解析器 快捷键 history 所有的历史命令ctrl P 向上滚动命令 ctrl N 向下滚动命令 ctrlB将光标向前移动 ctrlF将光标向后移动 ctrlA移动到命令行头部 ctrlE移动到命令行尾部 光标删除操作:删除光标前面字符ctrlh或…

空间排版设计网站望野原文及翻译赏析

文章目录 0)概述1)求解next数组2)求解匹配位置的核心函数3)完整代码 0)概述 在做模式串与文本串的匹配问题时,匹配失败时,如果每次都只向后递进一位,时间复杂度为 O ( n m ) O(nm…

网站 参数设置伊川网站开发

如果你是需要快速搭建一个matlab调c/c环境,这篇文章可以参考 有了c代码,想在matlab里面调用,可以参考我这个模板 matlab调用代码: clear all close all clcinput1 1; input2 2;[output1,output2] mexfunction(input1,input2);…

白名单网站有哪些做网站需要多少资金

1. IP 地址 (IP Address) IP 地址是分配给每个网络设备的唯一标识符,用于在网络中进行通信。IP 地址有两种主要版本: IPv4 和 IPv6。 IPv4 (Internet Protocol version 4): 由四组数字组成,每组数字在0到255之间,例如 192.168.…

网站的权重东莞网站建设公司怎么做

1. 前言。1.1. 需求背景。每天抓取的是同一份商品的数据,用来做趋势分析。要求每天都需要抓一份,也仅限抓取一份数据。但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量有关,一般情…

衡水提供网站制作公司哪家好如何建设一个专业的网站

Spring框架是一个开源的Java平台,它提供了非常容易,非常迅速地开发健壮的Java应用程序的全面的基础设施支持。今天就让我们一起来看看关于Spring的精华问答吧。1Q:如何在自定义端口上运行Spring Boot应用程序?A:为了在自定义端口上运行Spring…

东莞专业的网站建设网络推广小程序需要多少钱

今天看题的时候,遇到一个替换空格的题目,分析一下哈。 题目要求:把字符串中的每个空格替换成“%20”。例如输入“we are happy”,则输出“we%20are%20happy”。 解题思路:我们首先想到的是:移位思想。遇到…

网站做链接南通网站建设论坛

读取TEMP环境变量Environment.GetEnvironmentVariable("TEMP")

怎样网站优化公司深圳网站维护公司

前言 前段时间小白写了在实体机上安装FydeOS系统,发现有很多小伙伴在后台获取了FydeOS的镜像。 国内版ChromeOS?让旧机器焕发第二春的FydeOS安装教程 也有一些小伙伴看到是安装在实体机上的教程,所以就直接放弃了。其实FydeOS也可以用VM…

深圳手机建站模板好玩的网页游戏排名

匿名函数 lambda x , y : xy 1.匿名的目的就是要没有名字,给匿名函数赋给一个名字是没有意义的。 2.匿名函数的参数规则、作用域关系与有名函数是一样的。 3.匿名函数的函数体通常应该是 一个表达式,该表达式必须要有一个返回值。 flambda x,n:x ** n print(f(2,3))…

门户网站开发设计报告wordpress5 源码

前面都是点点滴滴的介绍selenium的一些api使用方法,那么selenium的api到底有多少呢?本篇就叫大家如何去查看selenium api,不求人,无需伸手找人要,在自己电脑就有。pydoc是Python自带的模块,主要用于从pytho…

vr技术在网站建设的应用清远新闻最新消息

题目描述 现有一棵由 n 个节点组成的无向树,节点编号从 0 到 n - 1 ,共有 n - 1 条边。 给你一个二维整数数组 edges ,长度为 n - 1 ,其中 edges[i] [ai, bi] 表示树中节点 ai 和 bi 之间存在一条边。另给你一个整数数组 restr…

结构设计网站推荐写作网站可以签约未成年吗

一:什么是数据? x10,10是我们要存储的数据 2 为何数据要分不同的类型 数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示 3 数据类型 数字 字符串 列表 元组 字典 集合 二:数字int #bit_length() 当十进…

郑州市二七区建设局 网站企业信用信息公示系统年报怎么填

电脑定时关机 1.右键 管理 2. 3. 4. 5. shutdown.exe/s /f /t 06.点击完成就好了 7.这里面可以 看到定时任务和启动 右键有运行 结束 禁用

建设银行官方网站下载安装机关网站建设前期准备工作

在使用 Git 作为版本控制的时候,我们可能会由于各种各样的原因提交了许多临时的 commit,而这些 commit 拼接起来才是完整的任务。那么我们为了避免太多的 commit 而造成版本控制的混乱,通常我们推荐将这些 commit 合并成一个。 1. 查看提交历…

福田深圳网站建设久久建筑网怎么免费下载

人力资源是一个组织中至关重要的一环,而员工管理是确保团队高效运转的关键因素之一。一个优秀的经理需要具备多方面的技巧和能力,以便激发员工的潜力,促进合作和增加团队的效率。在这里,我将分享一些实用的员工管理技巧&#xff0…

电脑游戏网站建设wordpress好用的博客主题

MVC 1.JSP演化历史 1. 早期只有servlet,只能使用response输出标签数据,非常麻烦 2. 后来有了jsp,简化了Servlet的开发,如果过度使用jsp,在jsp中即写大量的java代码,有写html表,造成难于维护&…