Java EEアプリケーションをweblogicで実行しようとしています。アプリケーションはTomcatで正常に動作します。warファイルをカスタマイズしてweblogic.xmlを含めています。このファイルには次のコードが含まれています:-
<container-descriptor>
<show-archived-real-path-enabled>true</show-archived-real-path-enabled>
</container-descriptor>
また、アプリケーションのプロパティファイルの構成を変更して、コンテナーがリッスンしているポートを反映しました。 server.port = 7001 server.modjk.enabled = false
私のweb.xmlファイルには次のコードが含まれています:
<servlet>
<servlet-name>olatservlet</servlet-name>
<servlet-class>org.olat.core.servlets.OLATServlet</servlet-class>
<!-- Set the load order -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>olatservlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>olatservlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
最初にweblogic 11gでwarファイルを実行していたときに、nullpointer例外が発生しました。ただし、libフォルダーからXerceImpl.jarを削除したときにファイルをデプロイできました。これで、アプリケーションを正常にデプロイできます。 weblogicのコンテキストルートにwarファイルの名前を付けます。 weblogicによって生成されたリンクをテストタブで開こうとすると、次のエラーが発生します。
エラー403-禁止
RFC 2068 Hypertext Transfer Protocol-HTTP/1.1から:
10.4.4 403 Forbidden
サーバーはリクエストを理解しましたが、リクエストの実行を拒否しています。承認は役に立たず、リクエストは繰り返されるべきではありません。リクエストメソッドがHEADでなく、サーバーがリクエストが実行されなかった理由を公開したい場合は、エンティティで拒否の理由を説明する必要があります。このステータスコードは通常、サーバーは、要求が拒否された理由を正確に明らかにしたくない、または他の応答が該当しない場合。
この問題の解決方法を誰かに教えてもらえないかと思っていました。
私はこの質問に答えるのが非常に遅いことを知っています。しかし、私はそれが誰かを助けることを期待して私の小さな知識で答えています。
開始ページは、web.xmlファイルのwelcome-file-listで定義する必要があります。たとえば、client.jspがプロジェクトの実行時に表示されるページの場合、web.xmlのwelcome-file-listの最初の行ファイルは
<welcome-file-list>
<welcome-file>client.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
私はこれが非常に遅いことを知っていますが、同じ問題に出くわし、グーグルで検索した後、その理由を見つけて、同じ問題に遭遇する可能性のある他の人にだけ投稿することにしました。このウェブページは私にヒントを与えました:
デフォルトでは、WebLogicはディレクトリの参照を無効にしているため、ホームページとしてindex.htmlを使用するWebサイト(example.comなど)がある場合、次のように入力します。
http://localhost:7001/example.com,
デフォルトでは、weblogicはホームページを自動的に取得しません。完全なパスを入力する必要があります。
http://localhost:7001/example.com/index.html.
どちらの場合も、weblogicでディレクトリの参照を有効にする必要があります。とにかく、これは私に起こったことです。
対応するセキュリティコンフィグレーションをweblogic.xmlに追加し損なうと、「403 Forbidden。サーバーは要求を理解しましたが、実行を拒否しています。 "エラーが返されます。
したがって、web.xmlを "security-constraint"で設定したほかに、(login-config "および"security-role "設定、"security-role-assignment "weblogic.xmlの構成は、次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app xmlns:wls="http://xmlns.Oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee http://Java.Sun.com/xml/ns/javaee/web-app_3_0.xsd http://xmlns.Oracle.com/weblogic/weblogic-web-app http://xmlns.Oracle.com/weblogic/weblogic-web-app/1.8/weblogic-web-app.xsd">
<wls:weblogic-version>12.2.1</wls:weblogic-version>
<wls:context-root>SomeApp</wls:context-root>
***************
***************
<wls:security-role-assignment>
<wls:role-name>someGroupeDefinedInWebLogicServer</wls:role-name>
<wls:principal-name>someUserDefinedInWebLogicServer</wls:principal-name>
</wls:security-role-assignment>
***************
***************
</wls:weblogic-web-app>
希望、このhepls。
これは質問とは関係ないかもしれませんが、ウェブサイトを開こうとしたときにGoogleから来た人には、リンクのヘッダーにHTTPS://を追加することが私の場合に役立ちました。フライトのWebサイトにアクセスすると、このエラーが発生しました。同じ問題でGoogleから来ている他の人を助けるかもしれません。
私が作成したサービスプロバイダーの1つに同じ問題がありました。
私は自分のWebブラウザー経由でアクセスしようとしましたが、サーバーが実際に要求を実際に理解していることを理解するまで、このエラーメッセージが表示された理由を見つけることができませんでしたが、応答を得るためには、指定する必要があります正しいフォーマット(またはメディアタイプ)を読み取れるようにすると、サーバーが応答を返します。
要約すると、service providerは、ビルドするまで「application/html」を要求しているときに「application/xml」応答を提供していました私自身のクライアントコンシューマは "application/xml"を期待し、サーバーは応答の返信を受け入れました。
Web.xmlファイルを確認してください、xml構文に従っていない、有効なxmlファイルを意味します。余分な<または>などの小さなエラーでも、この種の問題を引き起こします(同じ問題が発生しました)