私は、2つの別々のWebアプリケーションで、バックアプリとフロントアプリで作業しています。おもしろいのは、バックエンドを実行するときに問題がないことです。しかし、フロントエンドで次のエラーが表示されます。
I have the following error in Netbeans
NetBeans: Deploying on Apache Tomcat or TomEE
profile mode: false
debug mode: false
force redeploy: true
Undeploying ...
undeploy?path=/
OK - Undeployed application at context path /
In-place deployment at D:\WebDevel\WebStore\WebFrontE\target\Web-1.0-SNAPSHOT
Deployment is in progress...
deploy?config=file%3A%2FC%3A%2FUsers%7E1%2FAppData%2FLocal%2FTemp%2Fcontext7815575477480252472.xml&path=/
FAIL - Deployed application at context path / but context failed to start
両方とも同じTomcatで実行されています。私の同僚は同じコードを持っていますが、うまく動作します:-s
Context Path
(または)Context Root
は、サーバーにデプロイされたアプリケーションごとに一意でなければなりません。
したがって、同じコンテキストルートを持つ2つのアプリケーションを同じサーバーにデプロイすることはできません。どちらのアプリケーションでも、コンテキストパスは/
。
小切手 server.xml
両方のコンテキストパスを確認します。それらが一意でない場合は、問題を解決するためにそれらを変更します。
ただし、両方のアプリケーションに同じコンテキストルートが必要な場合は、2つの異なるサーバーにデプロイする必要があります。
多くのリンクが機能しなかった後、この問題が発生し、この解決策が見つかりました。 Tomeeサーバーのserver.xmlを編集して、appBaseの完全修飾パスを提供します。
<Host name="localhost" appBase="C:\Apache\apache-tomee-7.0.2-plume\webapps"
unpackWARs="true" autoDeploy="true">
コンテキストが正常に開始されていない場合、次のエラーが発生します。インスタンス:メソッドを呼び出すコンテキストリスナーがあり、メソッドが存在しません。
私の問題はweb.xmlの構文エラーで、要素を閉じませんでした
Tomcatウィンドウ(NetBeans)には明確なエラーメッセージがありました、ありがとうArafat
01-Sep-2018 17:34:38.641 SEVERE [http-nio-8080-exec-5] org.Apache.Tomcat.util.digester.Digester.fatalError Parse Fatal Error at line 50 column 11:要素タイプ「param-値」は、一致する終了タグ「」で終了する必要があります。
私は少し遅れているかもしれませんが、これはTomcat 8のファクトリー名の変更が原因である可能性があると言うでしょう。したがって、以下の手順に従ってください。
1)まず、Tomcat 8以降を使用しているかどうかを確認します。
2)はいの場合、Tomcatはアプリケーションをデプロイできません。アプリケーションをデバッグモードで実行し、Tomcatウィンドウでスタックトレースを確認します(下部。Tomcat.logとは異なります)。ウィンドウを下にスクロールして、次のような例外を見つけることができるかどうかを確認します。
原因:Java.lang.NoClassDefFoundError:クラスorg.Apache.Tomcat.dbcp.dbcp2.BasicDataSourceFactoryを初期化できませんでした
3)上記のようなものが表示された場合、META-INF/context.xmlを開き、リソースタグのfactory属性をfactory = "org.Apache.Tomcat.dbcp.dbcp2.BasicDataSourceFactory"で置換または追加します。
4)Tomcatを再起動して再展開します。
「コンテキストパスでのアンデプロイされたアプリケーション」このエラーは、プロジェクトをあるシステムから別のシステムにコピーするときにファイルが見つからないために発生します。対処しながら、すべてのファイルをコピーする必要があります。エラーが発生した場合は、プロジェクトを再コピーしてインポートしてください。
私はこの問題に何度か出くわしました。以下の手順を試してみましたが、うまくいきました。
1。現在のプロジェクトをバックアップする(安全のため)。
2。プロジェクトフォルダーの場所を探します(通常はMyDocumentsまたはDocumentsNetBeansProjectsという名前のフォルダーにあります)。
。プロジェクトフォルダーを開き、deleteという名前のフォルダーtargetプロジェクトフォルダー内
4。 NetBeansを閉じてから再度開き、プロジェクトを実行します。
そして、あなたは行ってもいいです。
上記が機能しない場合は、フォルダー「Tomcat 9.0\conf\Catalina\localhost "フォルダーからxmlファイルを削除してみてください。
私の場合、web.xmlに追加したいくつかの構成タグを削除し、ストラットパッケージを構成しようとしました。また、そのパッケージをそれぞれ削除し、サーバーを再起動して、プロジェクトを実行し、動作しました。
ルートフォルダでApache Server Foundationのユーザーにセキュリティ許可を与えることで解決した同じ問題がありました
かつて同じ問題に直面しました。インスタンスの1つでは、同じルートを持つ複数のメソッドを持つコントローラーが原因でした。
@RestController
public class UsersController
{
@Autowired
UsersInterface userInterface;
@RequestMapping(value = "/get", method = RequestMethod.GET)
public String test()
{
return "Users";
}
@RequestMapping(value = "/get", method = RequestMethod.GET)
public List<user> getUsers()
{
List<User> users = userInterface.getUsers();
return users;
}
}
ご覧のとおり、コントローラーには2つのgetルートを定義する2つのメソッドがあるため、Springはメソッドを解決して.../users/get
ルート。
get
ルートの1つをリモートに移動し、他のルートに変更します。
私は答えるのが遅れるかもしれませんが、将来的に他の人を助けるかもしれません。
これには多くの原因が考えられますが、私の場合、個人的に最も頻繁に発生するのはweb.xmlファイルのサーブレット宣言です。 MacとLinuxの両方でプロジェクトをクロス開発していたとき、スペースや改行の問題のために、2つのプラットフォームでファイルの動作が異なることがわかりました。サーブレットの数が20を超えているため、見つけるのに何時間もかかりました。最終的に、奇妙なことに1つのコントローラークラス宣言に絞り込み、構文が完全に完璧であることがわかりました。それは私を解体したので、古い宣言とBAMを削除した後に宣言を書き直したいと思いました! Macですぐに動作しました。奇妙な。
私はこの問題に直面しています。他のいくつかの提案を試みた後、次のことが私にとって完璧に機能しました。
次のファイルを削除します。
/Apache-Tomcat-9.0.13/conf/Catalina/localhost/*.xml
私は同じ問題を抱えていましたが、mavenのみを使用しました(IDEなし)。 TomcatバージョンはTomcat7 7.0.70-1およびjdk8(pom.xml
:<Java.version>1.8</Java.version>
)Tomcat7 非互換 with Java 8、だから私はJava.version
in pom.xml
オン <Java.version>1.7</Java.version>
そしてそれが解決策でした!
また、この種の問題をNetBeansで解決するのに苦労しています。私はこの問題を取り除いて一日中スタックしています。多くの解決策が試されましたが、プロジェクトの「ターゲット」フォルダーを削除しようとして問題が解決するまで、何も起こりません。それが役に立てば幸い! :)