1

WAS 6.0 (私は知っています) .2.43 ND を複数のリージョンで実行しています。

私たちの Dev-B リージョンは正常に動作しますが、Web 呼び出しを行うと Dev-C が Java 例外をスローします (少なくともこれは開発者が教えてくれたことです)...両方のリージョンで同じコードを使用し、明らかな疑わしいものを確認しました (グローバル セキュリティ、SSL暗号など)、それらはすべて一致しているようです。SystemErr からのスタック トレースは次のとおりです。

[8/1/12 4:02:31:758 EDT] 0000005c ServletWrappe E   SRVE0068E: Could not invoke the service() method on servlet action. Exception thrown : java.lang.NoClassDefFoundError
    at javax.crypto.Mac.getInstance(DashoA12275)
    at net.oauth.signature.HMAC_SHA1.computeSignature(HMAC_SHA1.java:73)
    at net.oauth.signature.HMAC_SHA1.getSignature(HMAC_SHA1.java:39)
    at net.oauth.signature.OAuthSignatureMethod.getSignature(OAuthSignatureMethod.java:83)
    at net.oauth.signature.OAuthSignatureMethod.sign(OAuthSignatureMethod.java:54)
    at com.harcourt.hsp.utils.LTIUtil.generateSignature(LTIUtil.java:62)
    at com.harcourt.hsp.web.struts.lti.action.BaseLTIAction.generateSignature(BaseLTIAction.java:238)
    at com.harcourt.hsp.web.struts.lti.action.BaseLTIAction.execute(BaseLTIAction.java:96)
    at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1796)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:887)
    at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90)
    at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1937)
    at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:130)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:434)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:373)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:253)
    at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminaters(NewConnectionInitialReadCallback.java:207)
    at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:109)
    at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566)
    at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619)
    at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952)
    at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1498)

    at javax.crypto.Mac.getInstance(DashoA12275)
    at net.oauth.signature.HMAC_SHA1.computeSignature(HMAC_SHA1.java:73)
    at net.oauth.signature.HMAC_SHA1.getSignature(HMAC_SHA1.java:39)
    at net.oauth.signature.OAuthSignatureMethod.getSignature(OAuthSignatureMethod.java:83)
    at net.oauth.signature.OAuthSignatureMethod.sign(OAuthSignatureMethod.java:54)
    at com.harcourt.hsp.utils.LTIUtil.generateSignature(LTIUtil.java:62)
    at com.harcourt.hsp.web.struts.lti.action.BaseLTIAction.generateSignature(BaseLTIAction.java:238)
    at com.harcourt.hsp.web.struts.lti.action.BaseLTIAction.execute(BaseLTIAction.java:96)
    at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1796)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:887)
    at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90)
    at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1937)
    at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:130)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:434)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:373)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:253)
    at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminaters(NewConnectionInitialReadCallback.java:207)
    at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:109)
    at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566)
    at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619)
    at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952)
    at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1498)

ご協力いただきありがとうございます。私が見逃しているのは設定だと確信しています。

4

1 に答える 1

0

何らかの理由で、javax.crypto.Mac.getInstance解決できません。本格的なトラブルシューティングを行う前に、簡単に解決できることを試してみたい場合: 瓶がありませんか? クラスをクラスパスに追加する必要がありますか?

最終的に、問題を解決する最善の方法は、段階的な分析を論理的に行うことです。この3 部構成の記事では、 のトラブルシューティングについて説明しjava.lang.NoClassDefFoundErrorます。おそらくあなたの質問に答えるだろうと思われる比較的短い読み物です.

完全を期すために、短いバージョンを含めました(上記の記事から抜粋)

  1. java.lang.NoClassDefFoundError エラーを確認し、欠落している Java クラスを特定します。(この場合は javax.crypto.Mac.getInstance)

  2. コンパイル/ビルド環境から不足している Java クラスを確認して見つけます。

  3. 欠落している Java クラスが、アプリケーション コード、サード パーツ API、または Java EE コンテナー自体からのものかどうかを判断します。不足している JAR ファイルがどこにあるか、または見つかると予想される場所を確認します

  4. 見つかったら、ランタイム環境の Java クラスパスに入力ミスや欠落している JAR ファイルがないかどうかを確認します。

  5. Java EE アプリケーションから問題が発生した場合は、上記と同じ手順を実行しますが、EAR / WAR ファイルのパッケージングで、JAR や MANIFEST などの他のライブラリ ファイルの依存関係がないことを確認します。

  6. 影響を受けるクラスのコード ウォークスルーを実行し、静的初期化コード (変数と静的ブロック) が含まれているかどうかを確認します。

  7. サーバーとアプリケーションのログを確認し、エラーが静的初期化コードに起因するかどうかを判断します

  8. 確認したら、コードをさらに分析し、イニシャライザ コード エラーの根本原因を特定します。静的初期化コードの今後の障害を防止し、より適切に処理するために、適切なエラー処理とともに追加のログを追加する必要がある場合があります。

于 2012-09-17T21:36:46.190 に答える