2017-06-05 3 views
1

SNIサポートを利用できるように、新しいバージョンのRESTEasyでWildfly 8.2.1.Finalをアップグレードしました(3.0.10では使用できません)。最終版)。そこで、私は/wildfly/modules/system/layers/baseディレクトリにresteasy-jboss-modules-3.0.23.Finalコンテンツをコピーしました。しかし、今私は違う行動をしています!私のレストサービスは呼ばれません。私は、コンテキスト/サーブレットパスを視察してきたとき、私は3.0.10.Finalと3.0.23.Finalバージョン間で異なる値が見つかりました:RESTEasyのでServletPathがRESTEasy 3.0.10.Finalから3.0.23.Finalに変更されました

3.0.10.Final私は、次の値が設定されています

 String contextPath = request.getContextPath(); // = "/myApp" 
     String servletPath = request.getServletPath(); // = "/api" 
     String pathInfo = request.getPathInfo(); // = "/auth" 

とRESTEasyの3.0.23.Finalと 私が持っている:

 String contextPath = request.getContextPath(); // = "/myApp" 
     String servletPath = request.getServletPath(); // = "/api/auth" 
     String pathInfo = request.getPathInfo(); // = null 

私のjboss-web.xmlの:

<?xml version="1.0" encoding="UTF-8"?> 
<jboss-web> 
    <context-root>/myApp</context-root> 
</jboss-web> 

web.xmlにサーブレットのマッピングがありません。 、JAX-RSコンテキストでrequest.getServletPath()request.getPathInfo()の動作は仕様で定義されていない

@ApplicationPath("/api") 
public class RESTActivator extends Application { 
    private final Set<Class<?>> classes; 

    public RESTActivator() { 
     HashSet<Class<?>> c = new HashSet<>(); 
     c.add(ARestService.class); 
     c.add(AnotherRestService.class); 
     classes = Collections.unmodifiableSet(c); 
    } 

    @Override 
    public Set<Class<?>> getClasses() { 
     return classes; 
    } 
} 
+0

web.xml内のサーブレットマッピングはどのように見えますか? –

+0

@Steve Cマッピング設定で質問を更新しました – ElArbi

答えて

1

:私が持っているすべては、@ApplicationPathアノテーションでjavax.ws.rs.core.Applicationを拡張するクラスです。だから私は実装が自由にこれらをどのように見えるかを管理すると思う。

これらのパスコンポーネントが重要な場合は、代わりに@javax.ws.rs.core.Contextを介してjavax.ws.rs.core.UriInfoのサービスを使用することを検討してください。

+0

@Contextを使用してjavax.ws.rs.core.UriInfoを挿入すると、nullが返されます – ElArbi

+0

リクエストが処理されている場合でも、 –

+0

はいリクエストが処理されている場合でも – ElArbi

関連する問題