Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Apache的JSONProvider namespaceMap配置在web.xml中的应用

Apache的JSONProvider namespaceMap配置在web.xml中的应用
EN

Stack Overflow用户
提问于 2015-11-23 11:35:51
回答 1查看 569关注 0票数 0

我需要通过Apache中的namespaceMap文件向JSONProvider配置传递一个web.xml

我没有在这个应用程序上使用Spring,也没有像这个问题建议的那样对提供程序进行编程配置:CXF:没有为类自动映射非简单资源找到消息体编写器

而是使用这个来自CXF代码的非Spring示例样式的配置。

但是,该示例没有说明如何提供namespaceMap,我也不确定如何以这种配置方式指定映射。

我要试一试。

任何人都知道JSONProvider配置语法的参考指南(通过web.xml )。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-01 09:25:13

我找不到参考指南,但通过一些代码搜索和来自档案馆的邮件列表线程解决了配置问题。

出于某种原因,来自邮件列表线程的建议不起作用(它忽略了来自web.xml的自定义web.xml)。我可能有其他问题。

最终,我放弃了web.xml配置的概念,因为它已经被用来提供一个javax.ws.rs.Application,并且(从@ CXF代码中查找),如果CXF找到了一个应用程序,它就会忽略来自web.xmlinit-param元素。

此外,在web.xml配置中似乎没有一种表示Map类型的方法。这是基于线程和代码的猜测,所以我不能100%确认。

这就是我的web.xml的样子(在这些更改之前和之后相同):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<servlet>
    <servlet-name>CXFServlet</servlet-name>
    <display-name>CXF Servlet</display-name>
    <servlet-class>org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet</servlet-class>
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>my.javax-ws-rs.Application</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

我需要在my.javax-ws-rs.Application类中进行更改。

只需将一个新的JSONProvider添加到其中的单点列表中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Override
public Set< Object> getSingletons() {
    final Set< Object> singletons = new HashSet<>();

   // [SNIP -- existing singletons]
    singletons.add( new my.provider.MyJSONProvider() );

    return singletons;
}

my.provider.MyJSONProvider的定义是其他魔术发生的地方(是的,这是我说我没有的“编程”配置,但最终不得不求助于此):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Produces({MediaType.APPLICATION_JSON})
@Consumes({MediaType.APPLICATION_JSON}) 
@Provider
public class MyJSONProvider<T> extends JSONProvider<T> {

  public AdministrationUtilisatuerJSONProvider() {

    {
        Map<String, String> newNamespaceMap = new ConcurrentHashMap<>();

        XmlSchema resource1SchemaAnnotation = Resource1.class.getPackage().getAnnotation(javax.xml.bind.annotation.XmlSchema.class);
        String resource1Namespace = resource1SchemaAnnotation.namespace();
        newNamespaceMap.put( resource1Namespace, "resource1JsonPrefix" );

        XmlSchema resource2SchemaAnnotation = Resource2.class.getPackage().getAnnotation(javax.xml.bind.annotation.XmlSchema.class);
        String resource2Namespace = resource2SchemaAnnotation.namespace();
        newNamespaceMap.put( resource2Namespace, "resource2JsonPrefix" );

        setNamespaceMap(newNamespaceMap);
    }

    // Or set this to "true" to ignore all that namespace stuff
    // setIgnoreNamespaces(true);

    // Don't write namespace for default xsi-type elements.
    setWriteXsiType(false);

    // [SNIP] -- Other JSONProvider configuration.  
    //           Check source from CXF, but few comments in code.

  }

关于使基于JSON的JSON在CXF中工作的最后一个注意事项:您还需要类路径上的cxf-rt-rs-extension-providers-X.Y.Z.jar。CXF WHICH_JARS文件中没有记录这一点,但这是必需的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33879167

复制
相关文章
SpringMVC在web.xml中的配置(引入springmvc)
复制就完事,无需多言 <servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name>
乐心湖
2020/07/31
6970
web.xml配置  关于web.xml配置中的<url-pattern>
  在${CATALINA_HOME}\conf\web.xml中的内容,相当于写到了每个项目的web.xml中,它是所有web.xml的父文件。
eadela
2019/09/29
1.4K0
【重要】Spring在web.xml中的配置原理说明
Spring原理说明: // 方式零:就在实现类中改,用哪个改哪个 // new出来的,耦合性太强,依赖于具体的实现类,如果我具体的实现类变了,那么这里的接口代码也得跟着变,这样不好。 // private IUserDao dao = new IUserDaoImpl();  // private IUserDao dao = new IUserDaoImplForOracle();  // 方式一:不在实现类中修改,在工厂类中改forName的参数 // private IUserDao dao =
黑泽君
2018/10/11
6610
【重要】Spring在web.xml中的配置原理说明
关于web.xml配置中的<url-pattern>
<url-pattern>是我们用Servlet做Web项目时需要经常配置的标签,例:
全栈程序员站长
2022/09/07
5830
Spring中,applicationContext.xml 配置文件在web.xml中的配置详解
这段配置是用于指定applicationContext.xml配置文件的位置,可通过context-param加以指定:
全栈程序员站长
2022/09/13
1.9K0
Spring中,applicationContext.xml 配置文件在web.xml中的配置详解
struts2在web.xml中配置详情
web.xml是web应用中载入有关servlet信息的重要配置文件,起着初始化servlet,filter等web程序的作用。
全栈程序员站长
2022/07/10
4990
Apache Hudi在医疗大数据中的应用
本篇文章主要介绍Apache Hudi在医疗大数据中的应用,主要分为5个部分进行介绍:1. 建设背景,2. 为什么选择Hudi,3. Hudi数据同步,4. 存储类型选择及查询优化,5. 未来发展与思考。
ApacheHudi
2021/04/13
1K0
Apache Shiro在web开发安全技术中的应用
前阶段就hadoop的分享了一些内容,希望对新手入门的朋友有点帮助吧!对于hadoop新手入门的,还是比较推荐大快搜索的DKHadoop发行版,三节点标准版还是值得拥有的(三节点的标准版是可以免费下载的,与付费版的目前功能一样,只是节点数量不同,对于新手而言三节点的够用了)。正在学习hadoop可以下载一下研究学习之用,也可以留言向我索要!
IT小白龙
2018/09/05
6610
Apache Shiro在web开发安全技术中的应用
数据结构:链表在 Apache Kafka 中的应用
这一讲中,我想和你分享一下,数组和链表结合起来的数据结构是如何被大量应用在操作系统、计算机网络,甚至是在 Apache 开源项目中的。
码农架构
2021/01/22
9970
数据结构:链表在 Apache Kafka 中的应用
web.xml 配置中 classpath: 与 classpath*: 的区别
  通常我们一般使用这种写法实在web.xml中,比如spring加载bean的上下文时,如下代码:
黑泽君
2019/02/25
1.4K0
web.xml 配置中 classpath: 与 classpath*: 的区别
Presto on Apache Kafka 在 Uber的应用
Uber的目标是通过让世界运转来激发机遇,而大数据是其中非常重要的一部分。 Presto® 和 Apache Kafka® 在 Uber 的大数据堆栈中发挥着关键作用。 Presto 是查询联合的事实标准,已用于交互式查询、近实时数据分析和大规模数据分析。 Kafka 是支持许多用例的数据流的骨干,例如发布/订阅、流处理等。在接下来的文章中,我们将讨论我们如何将这两个重要的服务连接在一起,以通过Uber大规模Presto集群直接在 Kafka 上的实现轻量级、交互式 SQL 查询。
从大数据到人工智能
2022/04/17
9450
Presto on Apache Kafka 在 Uber的应用
Spring MVC中,applicationContext.xml [ServletName]-servlet.xml配置文件在web.xml中的配置详解Spring MVC中,applicatio
这样配置,SpringMVC会自动按照约定去找<servlet-name>swork</servlet-name>的swork-servlet.xml配置文件作为其servlet配置文件.
一个会写诗的程序员
2018/08/20
1.5K0
Apache配置与应用
4、修改自动生成的awstats访问权限,加载CGI模块(Apache2.4以上版本需要加载CGI模块)
全栈程序员站长
2022/09/06
5240
Apache配置与应用
Apache 配置与应用
Apache HTTP Server 之所以受到众多企业的青睐,得益于其源代码开源,跨平台、功能模块化、可灵活定制等优点,其不仅性能稳定,在安全性方面的表现也十分出色。
全栈程序员站长
2022/09/14
4700
Apache 配置与应用
Servlet3的web.xml配置
Servlet3的web.xml样本示例、使用servlet3.0注解报会在访问时报404错误,解决方案如下web.xml文件头如下配置:
青山师
2023/05/04
2710
Apache DolphinScheduler 在大数据环境中的应用与调优
下午好,我叫李进勇,是政采云数据平台架构师,在政采云主要负责大数据底层架构和数据工程化方面,同时也是 Dolphinscheduler的PMC成员。今天我将重点分享关于Apache Dolphinscheduler 2.0.9版本中一些优秀的功能。选择这个主题的原因是因为在2.0.X版本的演进中,我们致力于打造一个稳定且功能强大的工作流编排调度平台,使得工作流编排和批处理调度变得更加稳定可靠,因此将此主题命名为“聚焦调度”。
用户6070864
2023/09/06
1K0
Apache DolphinScheduler 在大数据环境中的应用与调优
Apache Doris在作业帮实时数仓中的应用实践
在Java里经常会判断一个对象是否为空,如果为空的对象访问方法,字段会抛出空指针异常,而空指针异常为运行异常,如果不抓取这个异常,有的时候会导致程序异常,为了解决这个问题,我们通常会在代码里显式的去判断该对象是否为空,进行为空的逻辑处理,这种做法逻辑虽然明确,但是由于空的逻辑并不是经常碰到,这样会导致有多余的逻辑分支判断。
王知无-import_bigdata
2020/11/06
1.3K0
Apache Doris在作业帮实时数仓中的应用实践
Apache Hudi在腾讯的落地与应用
Apache Hudi是一个基于数据库内核的流式数据湖平台,支持流式工作负载,事务,并发控制,Schema演进与约束;同时支持Spark/Presto/Trino/HIve等生态对接,在数据库内核侧支持可插拔索引的更新,删除,同时会自动管理文件大小,数据Clustering,Compaction,Cleanning等
ApacheHudi
2022/12/09
1.9K1
Apache Hudi在腾讯的落地与应用
web.xml中contextConfigLocation的作用
在web.xml中通过contextConfigLocation配置spring,contextConfigLocation参数定义了要装入的 Spring 配置文件。
全栈程序员站长
2022/07/04
3180
JavaWeb工程中web.xml基本配置
        先说下我记得xml规则,必须有且只有一个根节点,大小写敏感,标签不嵌套,必须配对。
bear_fish
2018/09/19
1.7K0
JavaWeb工程中web.xml基本配置

相似问题

Apache Tomcat配置Web.xml

30

Apache CXF 3.1.11中的JSONProvider类替换

138

在web.xml Java应用程序中配置Timezone

10

在应用程序JspServlet中修改web.xml配置?

10

web.xml中的taglib配置

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文