AppFuseで基本的なアプリケーションシェルを作成し、AppFuse tutorialの後にJax-RSを使って簡単なRESTfulサービスを作成しました。それはうまく動作します。 http://localhost:8080/services/api/persons
の呼び出しは、適切なデータを持つJson形式の文字列としてPersonオブジェクトのコレクションを返します。Jax Rs/AppfuseアプリケーションでHttpServletRequestを取得しますか?
Appfuseが公開しているRESTfulサービス(これらのオブジェクトを必要とする別のライブラリを使用するため)でServletRequest
とServletResponse
オブジェクトにアクセスしたいとします。
I @Context注釈を追加することで実現できるはずです。このStackOverflow postとこのforum postの後に続きます。
@Contextタグ(下記参照)を追加すると、コンパイルは正常ですが、サーバーが再起動されたときに例外がスローされます(下部にアタッチされます)。 、どちらか何かうまくいけば、私は、単純な何かが欠けてい
@Service("personManager")
public class PersonManagerImpl extends GenericManagerImpl<Person, Long> implements PersonManager {
PersonDao personDao;
@Context ServletRequest request; // Exception thrown on launch if this is present
@Context ServletContext context; // Exception thrown on launch of this is present
...
}
:ここ
は@WebService
の宣言です:
@WebService
@Path("/persons")
public interface PersonManager extends GenericManager<Person, Long> {
@Path("/")
@GET
@Produces(MediaType.APPLICATION_JSON)
List<Person> read();
...
}
そして、ここで私は@Context
注釈を呼ぶだろうと思うの実装クラスですServletRequestを取得することが可能ではないと考えていることを認識するために... ....手がかりを歓迎します。
IntelliJのTomcatでこれを実行していますか?
===例外スタックトレース(切り捨て)===
Caused by: org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'serviceBeans' threw exception; nested exception is java.lang.RuntimeException: java.lang.NullPointerException
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:102)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:58)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1358)
... 37 more
ありがとうございます!これは書かれたとおりには動作しませんでしたが、別の例外がありました.ServletRequestだけでなくHttpServletRequestを参照するというアイデアは、正しくインクルードする方法を理解するための完璧な手掛かりでした。適切なチェックではなく+1ですか? – prototype
Hmmm thats odd。実際に機能しているプログラムから直接コードを貼り付けました。他の人に恩恵を受けることができるように、あなたの解決策を回答として投稿してください。 – Perception
次に、安らかなサービスがどのように機能するかを知るために、自分のリストに追加する必要がある別のアイテムが必要です。それを知っていることも役に立ちます。再度、感謝します! – prototype