seam maven portlet groovy工程建立过程:

本文介绍如何在JBoss Portal环境下使用NetBeans和Groovy进行高效开发,包括配置快速部署、解决依赖问题及常见错误处理等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现目标:
在netbeans下修改除entity外的
groovy bean和xhtml在jboss-portal中立即生效,不用重新部署。
entity bean可用groovy写,在ejb工程中写。
需即时生效的bean在war工程中写。

工程环境:
linux下netbeans6.5.1开发。现在还是换到eclipse上面了。
seam本来就不快,做portlet更加不会快,加上groovy可能还要慢(主要是未编译的groovy),刚才测试了手中的所有jdk,jrrt(jrockit),ibm jdk,sun jdk 分别测试了1.5和6一共6种。结果ibm 1.5.0的确不错,是最快的。速度基本满意。



seam maven portlet groovy工程建立过程:

一:建立工程
mvn archetype:generate \
-DarchetypeGroupId=org.jboss.portletbridge.archetypes \
-DarchetypeArtifactId=seam-basic \
-DarchetypeVersion=1.0.0.B6 \
-Dversion=1.0 \
-DgroupId=cn.cjp.ooa.工程名 \
-DartifactId=工程名 \
-DarchetypeRepository=http://repository.jboss.org/maven2/ \

当前的工程有个依赖是错的。web/pom.xml中的org.jboss.portletbridge的
<version>${project.version}</version>
应该更改为:
<version>${portletbridge.version}</version>

二:为netbeans识别WEB-INF/dev下的代码作些处理
mkdir 当前工程目录/web/src/main/webapp/WEB-INF/dev
cd 当前工程目录/web/src/main/
ln -s 当前工程目录/web/src/main/webapp/WEB-INF/dev java

修改components.xml的<core:init debug="false"/>debug为true

三:增加groovy的依赖包以及编译groovy的能力
编辑 当前工程目录/ejb/pom.xml
在<dependencys>下增加:
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>1.6.0</version>
<scope>compile</scope>
</dependency>

在<plugins>下增加:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<configuration>
<tasks>
<taskdef name="groovyc" classname="org.codehaus.groovy.ant.Groovyc">
<classpath refid="maven.compile.classpath" />
</taskdef>
<mkdir dir="${project.build.outputDirectory}" />
<groovyc destdir="target/classes" srcdir="src/main/java" listfiles="true">
<classpath refid="maven.compile.classpath" />
</groovyc>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>

四:编写快速部署的shell。
一共两个,
dev.sh,用于重新部署整个ear包。(jboss中的项目将重新启动)
#!/bin/sh
portallversion=2.7.2
name="工程名"
ver="1.0"
workspace="/home/xxx/workspace/"#工程目录的父目录的绝对路径
deploy="${HOME}/xxx/jboss-portal-${portallversion}/server/default/deploy/"#jboss-portal所在路径

project="$name-$ver"
src="target/$project"
dst="tmp/$project.dir"
rm ${deploy}$name-$ver.ear
cd ear
rm -rf $dst
mkdir -p $dst
cp -r $src/* $dst/
cd $dst
unzip $project.war -d abc
rm $project.war
mv abc $project.war
rm -rf $project.war/WEB-INF/dev
cd $project.war/WEB-INF/
ln -s $workspace$name/web/src/main/webapp/WEB-INF/dev ./
cd ../../../../../
./xhtml.sh
cd ${deploy}
ln -s $workspace$name/ear/tmp/$name-$ver.dir ./$name-$ver.ear

xhtml.sh,用于重新部署增加的xhtml文件和xml文件。(jboss中的项目热部署,不重新启动)

#!/bin/bash
name="工程名"
ver="1.0"
project="$name-$ver"
workspace="/home/xxx/workspace/"#工程目录的父目录的绝对路径
dst="tmp/$project.dir/$project.war"
src="$workspace$name/web/src/main/webapp"
cd ear
rm -rf $dst/*.xhtml
ln $src/*.xhtml $dst
rm -rf $dst/*.page.xml
ln $src/*.page.xml $dst
rm -rf $dst/pages.xml
ln $src/pages.xml $dst
lnf(){
mkdir $dst/$1/
rm -rf $dst/$1/*
ln $src/$1/* $dst/$1/
}
lnf "admin"#需要热部署的目录名
lnf "css"#需要热部署的目录名
lnf "editor"#需要热部署的目录名
lnf "images"#需要热部署的目录名
lnf "images/icons"#需要热部署的目录名
lnf "layout"#需要热部署的目录名


五:Attempt to register second SeamPhaseListener的问题:
编辑ear/pom.xml
删除<ejbModule>中的org.jboss.seam的ejbModule。

写shell的水平不是一般的低啊。自己都觉得这么写烂。真想重新用php写个,或者java的也好。能用还是先用着吧。懒啊。
六:解决web工程的依赖问题:
直接在dependency中加上ejb的工程scope为compile或者provided就好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值