GeneXusX Evolution2とTomcat7の環境設定

X Evolution2とは今更な情報ですが、先日Ev2とTomcat7の環境をセットアップする必要があり、
この組み合わせの場合に幾つか注意点がありました。

もしかしたら誰かの役に立つかもしれないので、掲載しておきます。

環境

GeneXusX Ev2U7
Tomcat7
Java7
SQLServer

前提

Tomcat7からInvokerが使用不可となった影響で、
TomcatにServletをロードさせるための対応が必要となりました。

もう少しバージョンが上がるとGXScanner.jarが用意されるのですが、
上記バージョンの組み合わせでは動作しないようでした。

現象

・Tomcatが起動時にエラーとなる。Tomcat\logs\配下のログを確認
・Tomcatにはログが出ていないが、404エラーが出て画面が呼び出せない

対応

ビルド実行後、Tomcatのアプリケーションディレクトリの\WEB-INF\web.xmlを修正

①GXOAuthAccessTokenの記述を削除
http://sac.genexus.jp/viewtr_sac.aspx?33789,

<servlet>
<servlet-name>GXOAuthAccessToken</servlet-name>
<servlet-class>com.genexus.webpanels.GXOAuthAccessTokenDummy</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>GXOAuthAccessToken</servlet-name>
<url-pattern>/oauth/access_token</url-pattern>
</servlet-mapping>


②Invokerの記述を削除(記述が無ければそのままで良い)
https://www.genexus.com/en/developers/websac?data=29603;;

<servlet>
<servlet-name>invoker</servlet-name>
<servlet-class>
    org.apache.catalina.servlets.InvokerServlet
</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>


③ナレッジベースのJavaジェネレータプロパティから
[Use annotations for servlet definition]プロパティをYesに設定してリビルド

http://wiki.genexus.jp/hwiki.aspx?%5BUse+annotations+for+servlet+definition%5D+プロパティ,

これにより全てのServlet(Javaソース)に対して、
@javax.servlet.annotation.WebServlet(value ="/servlet/xxxlogin")
このような記述が追加され、URLからの呼び出しに対して実行が可能となります。

※注意
このプロパティはXPZやGeneXusServerから移行した際には反映されません。
また、Tomcatが複数インストールされている環境ではデフォルト値がNoになります。

--------

①から③を実施することで解消はされますが、もし③を実施したくない場合や他の方法として、
「Web.xmlに対して全ての呼び出しを記述する」ことでも対応可能です。

https://www.genexus.com/en/developers/websac?data=29603;;
こちらの「Work Arround」を参照

コメント

  1. このコメントはブログの管理者によって削除されました。

    返信削除

コメントを投稿

このブログの人気の投稿

IVS文字・サロゲートペア文字の注意

Tomcatの設定3:8080ポート以外で動作させる

Tomcatの設定5:メモリ調整と起動モード

Tomcatの設定4:セキュリティ関連の調整

GeneXusのオプション設定、起動時オプション

ファビコン(fabicon)の設定