序文
同社の問題のために、再構築されたマイクロサービスは、JBoss、バージョンJBossのEAP 7.1、Springboot 2.1.3.RELEASEに展開する必要があります。このレコードにはいくつかの問題に遭遇したときに展開
まず、JBossアプリケーション・アクセス・ディレクトリのルートディレクトリを変更します
まずjboosが見つけ、\オープンのjboss-EAP-7.1、それ以外の場合は競合する、デフォルトのウェルカムページが空であるスタンドアロン\構成\ standalone.xmlを変更します
< サブシステムのxmlns =「壷:JBossの:ドメイン:引き波:4.0」> < バッファ・キャッシュの名前=「デフォルト」/> < サーバ名=「デフォルト・サーバー」> < HTTPリスナー名=「デフォルト」ソケット結合= "HTTP" リダイレクトソケット= "https"を有効-HTTP2 = "真" /> < HTTPSリスナーの名前= "https"をソケット結合= "https"をセキュリティレルム= "ApplicationRealm" 有効-HTTP2 =」真」 /> < ホスト名= "デフォルトホスト" 別名= "ローカルホスト" > < 場所名= "/" ハンドラ= "ウェルカム・コンテンツ" /> < フィルタ-REF 名= "サーバヘッダ" /> < フィルタ-REF 名= "X-パワード・バイ・ヘッダ」/> < HTTP-呼び出し元のセキュリティレルム= "ApplicationRealm" /> </ ホスト> </ サーバー> < サーブレット・コンテナ名= "デフォルト" > <JSP-config設定/> < WebSocketを/> </サーブレットコンテナ> < ハンドラ> < ファイル名=「ウェルカム・コンテンツ」パス=「$ {jboss.home.dir} /ウェルカム・コンテンツ」/> </ ハンドラ> < フィルター> < レスポンスヘッダ名= "サーバ-ヘッダ」ヘッダ名= "サーバー" ヘッダ値= "JBossの-EAP / 7" /> < レスポンスヘッダ名= "Xパワー・バイ・ヘッダ" ヘッダ名= "X-パワードバイ" header-値= "アンダートウ/ 1" /> </ フィルタ> </ サブシステム>
に改訂
< サブシステムのxmlns =「壷:JBossの:ドメイン:引き波:4.0」> < バッファ・キャッシュの名前=「デフォルト」/> < サーバ名=「デフォルト・サーバー」> < HTTPリスナー名=「デフォルト」ソケット結合= "HTTP" リダイレクトソケット= "https"を有効-HTTP2 = "真" /> < HTTPSリスナーの名前= "https"をソケット結合= "https"をセキュリティレルム= "ApplicationRealm" 有効-HTTP2 =」真」 /> < ホスト名= "デフォルト・ホスト" の別名= "localhost"を> <! - <場所名= "/"ハンドラ= "歓迎-コンテンツ" /> - > < フィルタ-refの名前= "サーバヘッダ" /> < フィルタ-REF 名= "Xパワー・バイ・ヘッダ" /> < HTTP-呼出しセキュリティレルム= "ApplicationRealm" /> </ ホスト> </ サーバ> < サーブレットコンテナの名前= "デフォルト" > < JSP、コンフィグ/> <WebSocketを/> </ サーブレットコンテナ> <! - <ハンドラ> <ファイル名= "歓迎-コンテンツ"パス= "$ {jboss.home.dir} /歓迎-コンテンツ" /> </ハンドラ> - > < フィルター> < レスポンスヘッダ名= "サーバ・ヘッダ" ヘッダ名= "サーバー" ヘッダ値= "JBossの-EAP / 7" /> < レスポンスヘッダ名= "Xパワー・バイ・ヘッダ" ヘッダ名=「X-パワード・バイ" ヘッダ値="アンダートウ/ 1" /> </ フィルタ> </ サブシステム>
改正前にバックアップすることを忘れないでください、これらのコメントは自動的にクリアJBossの開始の一部となります
このとき、ルートパスが既に空である、我々はルート・パスにマッピングされたパスを投影する必要があります、
次のように新しいファイルのjboss-web.xmlの作成、文書が読み込み
<?XMLバージョン= "1.0"エンコード= "UTF-8" ?> < JBossのウェブ> < コンテキストルート> / </ コンテキストルート> </ のjboss-ウェブ>
WEB-INFディレクトリにこのファイルを開くためのWinRARと私たちの戦争パッケージ
この時点で、JBossのルートアクセスパスを開始する私たちのプロジェクトのパスです。
戦争のノートにパッケージ化二、Springbootプロジェクト
<! -に再生されない、外部のパッケージに春ブートのTomcat関連のjarファイルを伝え、この演奏戦争パッケージを参加- >
< 依存>
< groupIdを> org.springframework.boot </ groupIdを>
< たartifactId >春-スタータTomcatのブート</ たartifactId >
< スコープ>提供</ スコープ>
</ 依存>
特に非Tomcatコンテナを使用する場合、それはTomcatの関連パッケージに追加する必要があり除外、または提供上記のように置換、又はコンテナの起動時にクラスキャスト例外が存在することになります
三、JBossの通常の開始が、プロジェクトはSpringBootを開始しませんでした
JBossは、通常のスタートを見ることができますが、Springbootプロジェクトが開始され同定されなかったは、JBossによるこの時間は、私たちのサーブレットを認識しません
通常Springbootプロジェクトのスタートアップクラスは、このです。
@EnableEurekaServer @SpringBootApplication(除外 = {。DataSourceAutoConfiguration クラス}) パブリック クラス EurekaApplication { 公共 静的 ボイドメイン(文字列[]引数){ SpringApplication.run(EurekaApplication。クラス、引数)。 } }
この方法では、Tomcatコンテナを起動することができますが、ないので、JBossの開始は、変更する必要があります
@EnableEurekaServer @SpringBootApplication(除外 = {。DataSourceAutoConfiguration クラス}) パブリック クラス EurekaApplication 延びSpringBootServletInitializer { @Overrideが 保護SpringApplicationBuilderの設定(SpringApplicationBuilderビルダー){ 戻り builder.sources(EurekaApplication。クラス)。 } パブリック 静的 ボイドメイン(文字列[]引数){ SpringApplication.run(EurekaApplication。クラス、引数)。 } }
このようなJBossは、当社のサーブレットの起動を見つけることができます
四、ユーレカは正常に起動したが、サービスは空白のページにアクセスするために登録することができます
...
Springbootプロジェクトがでロードされているこの時点で見ることができ、サービスも通常登録することができますが、空白のページを開くとユーレカ
此时打开控制台发现,访问路径404(这里我没有修改根路径为项目路径,Jboss默认war包名字是访问路径)
这是由于Springboot使用freeMark导致的
解决方案:
yml文件中添加
这个配置的意思是 是否优先从文件系统加载template,默认值为true
修改后再打包启动
页面可以正常访问