私はJava EEを使用してEclipseで動的Webプロジェクトを構築するための新しいスターターです。すべてうまくいった最初は、私は自由のための私のWebSphere Application Server(バージョン16.0.0.4)でローカルに私のWebプロジェクトを実行でき、WebSphere Application Server for Context-Root
ローカルホストから自分のウェブページにアクセス:9080/MainApplication
とIBM BlueMix上のリモート・サーバーにプッシュしても、すべてが機能していました。
私はJavaServer Facesの機能を発見しました。そこで私はEclipseプロジェクトで、Mojara 2.2 JSF実装ライブラリを使用してJSFファセットを追加しました。プロジェクトにJSFファセットを追加するとすぐに、ローカルでWebアプリケーションを実行しようとするたびに、「コンテキスト・ルートが見つかりません」というエラー・ページが表示されます。自分のWebページに直接アクセスしようとしても(localhost:9080/MainApplication/index.html)、同じエラーが発生しました。しかし、リモート・サーバーへのプッシュはまだ機能しており、WebプロジェクトではJSFが正常に実行されているため、ローカル・マシン上のWebSphere Application Server構成に問題があると考えています。
EclipseのアプリケーションからJSFファセットを削除して元に戻すと、問題が修正され、ファセットの再追加によって問題が再現されます。このによると、JSFファセットを追加すると、選択したJSF実装ライブラリがプロジェクトにインポートされ、「Faces設定ファイル」が追加され、faces.xmlサーブレット設定でweb.xmlが更新されます。だから私は、JSFファセットを追加することによってサーバーがコンテキストルートを見つけられないという理由を理解できません。ここ は私のweb.xmlです:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" 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" version="3.0">
<display-name>MainApplication</display-name>
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
<context-param>
<description>
State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resources.application</param-value>
</context-param>
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
</web-app>
とのserver.xml:
<server description="new server">
<!-- Enable features -->
<featureManager>
<feature>webProfile-7.0</feature>
<feature>localConnector-1.0</feature>
<feature>adminCenter-1.0</feature>
</featureManager>
<basicRegistry id="basic">
<user name="admin" password="adminpwd"/>
</basicRegistry>
<administrator-role>
<user>admin</user>
</administrator-role>
<remoteFileAccess>
<writeDir>${server.config.dir}</writeDir>
</remoteFileAccess>
<!-- To access this server from a remote client add a host attribute to the following element, e.g. host="*" -->
<httpEndpoint httpPort="9080" httpsPort="9443" id="defaultHttpEndpoint"/>
<!-- Automatically expand WAR files and EAR files -->
<applicationManager autoExpand="true"/>
<applicationMonitor updateTrigger="mbean"/>
<keyStore id="defaultKeyStore" password="adminpwd"/>
<webApplication id="MainApplication" location="MainApplication.war" name="MainApplication" contextRoot="MainApplication" type=""/>
</server>
私は後で新しいプロジェクトを開始し、最初からJSFを追加する代わりに試してみましたが、私は同じを持っています問題。私は私のwebプロジェクトのserver.xmlにcontextRoot = "MainApplication"を追加しようとしましたが、それもうまくいきません。私のプロジェクト - >プロパティ - > Webプロジェクト設定 - >コンテキストルート: を右クリックすると、値がMainApplicationに設定されます。 1つのstackoverflowポストにも同様の問題がありました: WebSphere Liberty Profile: Context Root Not Found しかし、私のプロジェクト(ibm-web-ext.xml & ibm-web-bnd.xml)にはないファイルが含まれていました。私はWEB-INFディレクトリにこれらのファイルを作成しようとしましたが、それでも動作しませんでした。
私は解決策を探して過去3日間過ごしましたが、どこにも行きませんでしたし、私の考えをすべて使い果たしました。どんな助けもありがとうございます。
何がdropinsディレクトリに戦争をあなたのserver.xmlからwebアプリケーションを削除して、移動した場合はどうですか? – Pete