Archive for ‘ March, 2010

[Java]antでtomcatにdeployする

ということで、antを使ってtomcatにデプロイを行う。

準備:
 catalina-ant.jarを”antlib”に設置。

以下をbuild.xmlに追加。

<property file="build.properties"/>

<!-- define tomcat task -->
<path id="tomcat.tasks.classpath" path="antlib/catalina-ant.jar"/>
<taskdef name="undeploy"
		classname="org.apache.catalina.ant.UndeployTask"
		classpathref="tomcat.tasks.classpath"/>
<taskdef name="deploy"
		classname="org.apache.catalina.ant.DeployTask"
		classpathref="tomcat.tasks.classpath"/>

<!-- redeploy -->
<target name="deploy">
	<deploy url="${manager.url}"
			username="${manager.username}"
			password="${manager.password}"
			path="${app.path}"
			war="${war.name}"/>
</target>

以下をbuild.propertiesに追加。

# setting
app.path="/hogehoge"
war.name="hoge.war"

# tomcat setting
manager.url=http://hoge:8080/manager
manager.username=hoge
manager.password=hoge

Popularity: 24% [?]

  • Digg
  • Google Bookmarks
  • Google Reader
  • Facebook
  • Delicious
  • FriendFeed
  • Evernote
  • Twitter
  • Share/Bookmark

[struts2]struts2とFreemarkerで、テンプレートの実行時エラー表示を抑制する

struts2でFreemarkerを使っているとそのままでは、テンプレートにエラーが
あった場合に、そのまま黄色画面でエラー(StackTrace)が表示されてしまう。

それを出力されないようにするための、FreemarkerManagerを作って設定する。
(これよりもっとスマートな方法はないものか…)

import javax.servlet.ServletContext;

import freemarker.template.TemplateException;
import freemarker.template.TemplateExceptionHandler;

public class FreemarkerManager extends
		org.apache.struts2.views.freemarker.FreemarkerManager {

	@Override
    protected freemarker.template.Configuration createConfiguration(ServletContext servletContext) throws TemplateException {
        freemarker.template.Configuration configuration = new freemarker.template.Configuration();

        configuration.setTemplateLoader(getTemplateLoader(servletContext));

        configuration.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);

        configuration.setObjectWrapper(getObjectWrapper());

        if( mruMaxStrongSize > 0 ) {
            configuration.setSetting(freemarker.template.Configuration.CACHE_STORAGE_KEY, "strong:" + mruMaxStrongSize);
        }

        if (encoding != null) {
            configuration.setDefaultEncoding(encoding);
        }

        loadSettings(servletContext, configuration);

        return configuration;
    }

}

struts.xmlに以下を記述。

	<!--  freemarker settings -->
	<constant name="struts.freemarker.manager.classname" value="com.bbt757.ktai.freemarker.FreemarkerManager" />

Popularity: 41% [?]

  • Digg
  • Google Bookmarks
  • Google Reader
  • Facebook
  • Delicious
  • FriendFeed
  • Evernote
  • Twitter
  • Share/Bookmark