3

ローカルのTomcatインスタンスで正常に実行されるアプリケーションがあります。これは、HectorをCassandraのクライアントライブラリとして使用するcassandraクライアントアプリです。アプリケーションは、次のようなコードを使用して、キースペースと列ファミリー(まだ存在しない場合)を作成します。

final ColumnFamilyDefinition cfDef = HFactory.createColumnFamilyDefinition(keySpaceName,
    columnFamilyName, ComparatorType.BYTESTYPE);
    cfDef.setKeyValidationClass(ComparatorType.LONGTYPE.getClassName());
    cfDef.setComparatorType(ComparatorType.UTF8TYPE);

cfDef.addColumnDefinition(new BasicColumnDefinition() {{
    setName(StringSerializer.get().toByteBuffer("id"));
    setValidationClass(ComparatorType.LONGTYPE.getClassName());
}});

これとまったく同じアプリケーションをCloudFoundry(単純なcassandraサービスがある独自の内部クラウド)にプッシュすると、上記の「addColumnDefinition」の行で例外が発生します。スタックトレースは次のとおりです。

java.lang.UnsupportedOperationException
java.util.AbstractList.add(Unknown Source)
java.util.AbstractList.add(Unknown Source)
me.prettyprint.cassandra.service.ThriftCfDef.addColumnDefinition(ThriftCfDef.java:311)
org.pvtl.cassandra.HectorSample.createColumnFamily(HectorSample.java:94)
org.pvtl.cassandra.HectorSample.<init>(HectorSample.java:37)
org.apache.jsp.index_jsp._jspService(index_jsp.java:61)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

たくさんのグーグルがあり、問題はHectorコードが不変のリスト(java.util.AbstractList)に追加しようとしていることのようです。しかし、繰り返しになりますが、そのコードはローカルのTomcatインスタンスで正常に実行されるため、jdkの違いを考えていますか?多分?私はjava7(sun)をローカルで実行していて、java 7を選択するようにプッシュしました。誰かアイデアはありますか?

4

1 に答える 1

3

不変リストの制約が新しいバージョンから削除されたため、おそらくHectorローカルのTomcatでサーバーのバージョンとは異なるバージョンを使用しています(つまり、サーバーに古いライブラリがあります)。Hector

このプルリクエストの説明を参照してください

編集

サーバー構成をチェックして、最新のhectorライブラリーがあることを確認するか、依存関係の問題を引き起こす可能性があるため、tomcat/jettyライブラリーフォルダーの下に存在hector-cor-xxx.jarしないことを確認することをお勧めします。

于 2013-02-13T00:03:31.773 に答える