fc2ブログ

2012-11-13(Tue)

Spring MVCサンプルを使う

spring-webflow-2.3.1.RELEASEのhotel bookingというサンプルがあるので使ってみる。
ダウンロードはここから。
spring-webflow-2.3.1.RELEASE-with-dependencies.zip
をダウンロードする。

IDEはNetBeans7.2.1を利用する。ここからJava EEを選択してダウンロード。

Netbeansを起動して
ファイル->プロジェクトをインポート->Zipから
と進み、ダウンロードしたzipファイルを読み込む。
そうすると
Hotel Booking:Spring MVC+Web Flow + JSP
というプロジェクトが見つかるのでこれで勉強していく。

このサンプルを選択した理由は以下の通り。
①Spring MVCを使っている。
②JSPを使っている。
③Hibenateを使っている。
将来はJSPをVelocityに変えたい。
今日はここまで。


スポンサーサイト



2012-11-11(Sun)

Spring Mirrorサイト設定

少しずつ作っていく。
FrameWorkが必要になったのでMaven2を使ってSpring MVCを使ってみる。

今日は、Spring Mirrorサイトを設定しておく。
こんな感じでよい。
$ vim ~/.m2/settings.xml
<settings>
<mirrors>
<mirror>
<id>ibiblio.org</id>
<url>http://mirrors.ibiblio.org/pub/mirrors/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>uk.maven.org</id>
<url>http://uk.maven.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>antelink.com</id>
<url>http://maven.antelink.com/content/repositories/central/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
</settings>



参考:
Mirrors Repositories

2012-01-12(Thu)

Spring and HibernateでContext initialization failed発生に悩む

SpringとHibernateを使ってmvn jetty:runする。
SpringとHibernateのpom.xmlのdependenciesはこんな感じ。

- pom.xml
  <dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<!-- For Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernateVersion}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>${hibernateVersion}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
<version>${hibernateVersion}</version>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
</dependency>
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>asm</groupId>
<artifactId>asm-commons</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>asm</groupId>
<artifactId>asm-attrs</artifactId>
<version>2.2.3</version>
</dependency>
<!-- Spring Framework -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${springVersion}</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${springVersion}</version>
</dependency>
<!-- For Log -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.4</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.6.4</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.4</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>

<dependency>
<groupId>janino</groupId>
<artifactId>janino</artifactId>
<version>2.5.10</version>
</dependency>
<!-- Cache -->
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2.2</version>
</dependency>
</dependencies>


すると、以下のようなエラーが出た。
2012-01-11 16:43:25,190 FrameworkServlet.java 457 ERROR
DispatcherServlet - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'UserClass' defined in ServletContext
resource [/WEB-INF/nfc-server-servlet.xml]: Cannot resolve\
>...at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
>...at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
>...at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1360)
>...at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118)
>...at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
>...at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
>...at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
>...at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
>...at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
>...at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
>...at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
>...at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
>...at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
>...at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:631)
>...at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:588)
>...at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:645)
>...at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:508)
>...at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:449)
>...at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:133)
>...at javax.servlet.GenericServlet.init(GenericServlet.java:244)
>...at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:456)
>...at org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:276)
>...at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)


ここを参照すると
javassist jar
を入れる必要があるらしい。
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.15.0-GA</version>
</dependency>

これで解決。
結構、ハマったのでメモっておく。

参考:
Hibernate (開発者ノートシリーズ)
はじめてのJavaフレームワーク―Struts 2/Spring/Hibernate対応 (TECHNICAL MASTER)

2011-12-26(Mon)

restEasyのSpring化(2)

Springを使う目的はSpringの宣言的トランザクションを使ってみたいためです。
今回は、project/src/main/resourcesフォルダについて以下のことをします。
①springmvc-resteasy.xmlの作成
②springmvc-servlet.xmlの作成
③datasource.propertiesの作成
④hibernate.propertiesの作成

①springmvc-resteasy.xmlの作成
restEasyのDocument(http://docs.jboss.org/resteasy/docs/2.3.0.GA/userguide/html/RESTEasy_Spring_Integration.html)
を見てみても、中途半端でわからない。
http://resteasy.svn.sourceforge.net/viewvc/resteasy/trunk/jaxrs/resteasy-spring/src/main/resources/springmvc-resteasy.xml?view=markup
を見ると、resteasy-springにあることがわかる。
maven central(http://search.maven.org/)からパッケージごとダウンロードして中からspringmvc-resteasy.xmlを抜き取り
resourcesフォルダにおく。

②springmvc-servlet.xmlの作成
ここで重要なのはspringmvc-resteasy.xmlを参照するよう設定すること。

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
">
<context:component-scan base-package="service.api.user" />
<context:annotation-config />
<import resource="classpath:springmvc-resteasy.xml" />

<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/" />
<property name="suffix" value=".jsp" />
</bean>

</beans>


③datasource.propertiesの作成
これはhibernate.cfg.xmlからコピペすればよい。

dataSource.driverClassName = org.postgresql.Driver
dataSource.username = hoge
dataSource.password = hogehoge
dataSource.hostname = xxx.xx.xxx.xx:5432
dataSource.dbname = hogedb
dataSource.url = jdbc:postgresql://${dataSource.hostname}/${dataSource.dbname}


④hibernate.propertiesの作成
これも簡単。

hibernate.dialect org.hibernate.dialect.PostgreSQLDialect
hibernate.connection.driver_class org.postgresql.Driver
hibernate.connection.url jdbc:postgresql://xxx.xx.xxx.xx:5432/hogedb
hibernate.connection.username hoge
hibernate.connection.password hogehoge


今日はここまで。
参考:


2011-12-25(Sun)

restEasyのSpring化(1)

restEasyとSpring統合をやってみる。
今回は、以下の2つを実施してみます。
①web.xmlの変更
②pom.xmlの変更

まずweb.xmlから

<?xml version="1.0"?>
<web-app version="3.0" metadata-complete="true" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name>Archetype Created Web Application</display-name>

<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/testurl</param-value>
</context-param>
<listener>
<listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
</listener>
<!-- 追加 -->
<listener>
<listener-class>org.jboss.resteasy.plugins.spring.SpringContextLoaderListener</listener-class>
</listener>

<servlet>
<servlet-name>test-server</servlet-name>
<!-- 追加 -->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 削除 -->
<!-- <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
-->
</servlet>

<servlet-mapping>
<servlet-name>test-server</servlet-name>
<url-pattern>/testurl/*</url-pattern>
</servlet-mapping>
</web-app>



次にpom.xml

<dependencies>
<!-- restEasy追加分 -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-spring</artifactId>
<version>${restEasyVersion}</version>
</dependency>
<!-- Spring Framework追加分 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${springVersion}</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${springVersion}</version>
</dependency>
</dependencies>


最後にコンパイルしてみます。

mvn install -Dmaven.test.skip=true


うまくできました。
参考:
プロフィール

kumagonjp2

Author:kumagonjp2
Python,Django,R,Mongo,MySQL,Struts,Spring,データマイニングなどサーバー関係のメモを残していきます。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
雪が3Dで降るブログパーツ ver2

マウスで見る方向変えられます

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR