【问题标题】:Mule with Jersey dynamic hyperlinks带有泽西岛动态超链接的骡子
【发布时间】:2015-09-22 21:03:53
【问题描述】:

将 mule 3.7 与 RESTful 应用程序和需要使用动态链接的设计一起使用。 Jersey 文档和示例调用告诉应用程序包使用链接,并在该包上注册 DeclarativeLinkingFeature 类,然后在类的字段上使用 @InjectLink 注释来接收链接。

这对 Mule 来说是个问题,应用程序结构是 Mule 内部的。如果没有此注册,他们的@InjectLink 无效,球衣不会填充链接。

有没有人有解决方案或解决方法,或者甚至知道 Mule 是否有任何实现动态链接的规定。我们无法在 Mule 文档中找到任何信息,也没有找到使用此功能的 Mule 应用程序示例。任何提示将不胜感激。

【问题讨论】:

    标签: rest dynamic hyperlink jersey mule


    【解决方案1】:

    如果您要使用的功能没有像这样使用@Provider 注释:https://github.com/jersey/jersey/blob/master/incubator/declarative-linking/src/main/java/org/glassfish/jersey/linking/DeclarativeLinkingFeature.java

    创建一个实现 Feature 并注解为 @Provider 的类,然后注册所需的功能:

    package com.package.features;
    import javax.ws.rs.core.Feature;
    import javax.ws.rs.core.FeatureContext;
    import javax.ws.rs.ext.Provider;
    import org.glassfish.jersey.linking.DeclarativeLinkingFeature;
    
    @Provider
    public class MyFeatures implements Feature {
    
    @Override
    public boolean configure(FeatureContext context) {
        return new DeclarativeLinkingFeature().configure(context);
      }
    }
    

    然后尝试通过扫描包来注册该功能:

    <jersey:resources>
       <component class="com.package.SomeResource"/>
       <jersey:package packageName="com.package.features" />
    </jersey:resources>
    

    【讨论】:

    • 我们尝试过类似的,我再次尝试验证结果。这确实会导致@InjectLink 有响应,但不是所需的响应:我们收到一个 http 错误 500,而不是预期的 200,消息正文为 javax.el.E​​xpressionFactory.newInstance()Ljavax /el/ExpressionFactory;.这似乎表明 Hibernate 验证失败,但即使在跟踪级别上也没有提供有关错误原因的信息,它隐藏在 Mule/Jersey 的内部。
    猜你喜欢
    • 1970-01-01
    • 2013-01-12
    • 1970-01-01
    • 2016-01-27
    • 2011-12-30
    • 2020-03-22
    • 2018-03-25
    • 1970-01-01
    • 2014-10-06
    相关资源
    最近更新 更多