6

lib以前はWARをローカルのTomcatサーバーにデプロイしていて、 tomcatのフォルダーにjackson-core.jarがありました。今、私は maven に切り替えて、jetty プラグインを使用しています。

406 error - The server responded with 406 error (Not acceptable)アプリサーバー(jetty)にjackson-core.jarが含まれていないため、エラーが発生していることを知っていることを除いて、すべて正常に機能します。

質問:

スタンドアロンのTomcatサーバーで行ったように、埋め込まれたjettyのlibフォルダーにjarを配置するにはどうすればよいですか。これは可能ですか?

私は次のことを試しました:

<configuration>
  <scanIntervalSeconds>5</scanIntervalSeconds>
  <webAppConfig>
  <contextPath>/myapp</contextPath>
  <extraClasspath>/Users/myuser/Downloads/jackson-core-2.1.0.jar</extraClasspath>
  </webAppConfig> 
</configuration>
4

2 に答える 2

14

<dependencies>プラグイン定義にセクションを追加することで、(プロジェクトのクラスパスではなく)プラグインのクラスパスを変更できます。例えば

<project>
  ...
  <build>
    ...
    <plugins>
      ...
      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>8.0.4.v20111024</version><!-- or whatever version you specified -->
        <configuration>
          ...
        </configuration>
        ...
        <dependencies>
          <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.1.0</version>
          </dependency>
        </dependencies>
        ...
      </plugin>
      ...
    </plugins>
    ...
  </build>
  ...
</project>

これで、古いバージョンのJackson、または古いAPI(下位互換性が失われたため、別のGroupId:ArtifactIdに存在する)を使用している可能性があるため、正しいものを選択したことを確認するために独自の調査を行う必要があります。

スコープ依存関係を追加する一般的な原則は<plugin>、ほとんどのより高度なプラグインで使用されています。1つまたは2つのマイナーな落とし穴があります。つまり、プラグイン自体の依存関係をオーバーライドする場合、つまり、追加する依存関係のgroupId:artifactIdが、プラグインのpomで宣言された依存関係のgroupId:artifactIdと一致する場合、エントリは次のようになります。正確さ、そしてバージョンを下げるとプラグインが壊れる可能性があります...しかし、それはjettyとjacksonには当てはまりません。

jettyのもう1つの特定の落とし穴は、slf4j-api依存関係をプルすると、jettyはそれをロギングに使用しようとし、slf4jのAPIの1つの小さな領域でいくつかの破壊的なAPI変更を与えられます(特にロギングアダプターの作成に関係します-使用している桟橋のバージョンが動作するように設計されたslf4jのバージョンに属するslf4j -_jarのスイートを使用しない場合、問題が発生する可能性があります。

于 2012-10-22T08:36:25.323 に答える
2

<dependencies/>プラグインのセクションに依存関係を追加するだけです。それはそれを行う必要があります。

于 2012-10-22T01:20:06.523 に答える