3

Tomcat 7 で akka を使用して Scala に単純なアプリケーションをデプロイしようとしています。

最初のバージョンでは、アクター システムとメイン アクターが Scala オブジェクトから直接開始されました。

2 つ目のバージョンでは、戦争の展開時にアクター システムとアクターを起動するために、イニシャライザー (ServletContextListener を拡張) を作成しました。

どちらの場合も、次のような java.lang.LinkageError を取得します。

java.lang.LinkageError: loader constraint violation: when resolving method "akka.actor.Props$.apply(Lscala/reflect/ClassManifest;)Lakka/actor/Props;" the class loader (instance of org/apache/catalina/loader/WebappClassLoader) of the current class, com/my-app/Transfert$, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, akka/actor/Props$, have different Class objects for the type scala/reflect/ClassManifest used in the signature
  com.my-app.Transfert$.<init>(Transfert.scala:14)
  com.my-app.Transfert$.<clinit>(Transfert.scala)
  com.my-app.Transfert.getState(Transfert.scala)
  org.apache.jsp.transfert_jsp._jspService(transfert_jsp.java:85)
  org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
  javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
  org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
  org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
  org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
  javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

Google などで検索しましたが、Tomcat 7 に Scala/akka アプリケーションをデプロイする方法の簡単な例が見つかりませんでした。

akka 1.3 に akka.http パッケージがあったことは知っていますが、(少なくとも) akka 2.0 を使用したいと考えています。play-mini の使用を支持して akka.http が姿を消したようです。しかし、私は play-mini や play を使いたくありません。

何かアドバイスはありますか?読書の提案はありますか?または ??

4

1 に答える 1

0

Jetty 8 内で Akka アクター 2.1 を実行していますが、あまり変わらないはずです。

問題に直面しているようですClassLoader(Java 6 を使用していて、バイナリ互換性の問題はないと思います)。

scala-library.2.10.0.jar戦争から と を削除しakka-actor_2.10-2.1.0.jarて、それらを tomcat 7libフォルダーにドロップすることをお勧めしますか?

于 2013-02-13T15:08:58.367 に答える