GeneXusX Evolution2とTomcat7の環境設定
この組み合わせの場合に幾つか注意点がありました。
もしかしたら誰かの役に立つかもしれないので、掲載しておきます。
環境
GeneXusX Ev2U7Tomcat7
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」を参照
このコメントはブログの管理者によって削除されました。
返信削除