2015-09-22 56 views
0

使用mule 3.7與一個RESTful應用程序和一個設計,要求使用動態鏈接。 Jersey文檔和示例調用告訴應用程序包使用鏈接,並在該包上註冊DeclarativeLinkingFeature類,然後在類的字段上使用@InjectLink註釋來接收鏈接。穆勒與澤西動態超鏈接

這對於Mule來說是有問題的,並且應用程序結構是Mule內部的。沒有這個註冊,他們@InjectLink沒有任何作用,球衣不會填充鏈接。

有沒有人有解決方案或解決或甚至知道如果騾有任何實施動態鏈接的規定。我們在Mule文檔中找不到任何信息,也沒有使用此功能的Mule應用程序示例。任何提示將不勝感激。

回答

0

如果你想使用的功能不註解@Provider像這樣的:https://github.com/jersey/jersey/blob/master/incubator/declarative-linking/src/main/java/org/glassfish/jersey/linking/DeclarativeLinkingFeature.java

創建一個實現功能的類,被註釋爲@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> 
+0

我們試圖相似,我試圖再次驗證結果。這確實導致@InjectLink有一個響應,但不是所期望的:我們收到一個get錯誤500,而不是預期的200,消息正文爲** javax.el.E​​xpressionFactory.newInstance()Ljavax/EL/ExpressionFactory; **。這似乎表明Hibernate驗證失敗,但即使在蹤跡層面,也沒有關於錯誤原因的信息,它隱藏在Mule/Jersey的腸內。 – dlb