实现目标:
在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就好。
分享到:
相关推荐
在IT行业中,构建和管理Java项目是一项至关重要的任务,而Maven作为一个强大的项目管理和依赖管理工具,极大地简化了这一过程。本篇文章将深入探讨如何使用Maven来管理Seam项目,一个基于Java EE的轻量级框架,专为...
【标题】 "jbos seam maven ant jdk" 涉及的关键技术点主要涵盖了四个核心领域:JBoss Seam、Maven、Ant以及Java Development Kit(JDK)。这些技术在Java开发环境中扮演着至关重要的角色,特别是对于企业级应用的...
安装完成后,重启 Eclipse,如果在工程空白处右键能看到创建 Seam 工程的选项,就说明安装成功。 接下来,需要下载并配置 JBoss 服务器。在这个例子中,我们使用的是 jboss-4.2.2.GA 版本。确保安装目录无空格和...
根据提供的信息,我们可以推断出这是一本关于 Seam 框架的专业书籍,书名为《Seam in Action》,作者为 Dan Allen 和 Manning 出版社出版。本书主要讲解了 Seam 框架在 Java EE 3 环境中的应用与开发实践。接下来将...
Seam 提供了一种集成的解决方案,将各种Java EE组件(如JSF、EJB、CDI等)紧密融合在一起,使得开发过程更为流畅。在这个"seam 的eclipse工程例子3"中,我们将探讨Seam与JSF的结合使用以及如何在Eclipse环境中创建和...
1. **环境准备**:确保你的开发环境中已经安装了Java JDK、Eclipse IDE(或其他支持Seam的IDE)、JBoss AS(或WildFly,因为Seam是基于JBoss的应用服务器)以及Seam工具集,如Seam Gen或Maven插件。 2. **新建项目*...
【Eclipse工程Seam示例2】是一个关于Java企业级开发的实践案例,它涉及到的主要技术包括Seam框架、EJB(Enterprise JavaBeans)以及JSF(JavaServer Faces)。这个项目可能是为了演示如何在Eclipse集成开发环境中...
- **建立一个新的Eclipse项目**:通过 Eclipse 创建 SEAM 项目。 - **创建新动作**:添加新的业务逻辑。 - **创建有动作的表单**:实现表单验证和提交。 - **从现有数据库生成应用程序**:利用现有的数据库架构自动...
2. **建立新的Eclipse项目**:通过Seam-gen插件自动创建项目模板。 3. **创建新操作**:演示了如何使用Seam-gen添加新功能或页面。 4. **生成应用程序**:从现有数据库中自动生成完整的Seam应用。 5. **部署EAR**:...
6. **Seam配置**:`seam-getting-started-build.xml`文件很可能是Seam项目的构建文件,可能包含Maven或Ant的配置信息,用于编译、测试和打包项目。理解如何配置Seam项目以及依赖管理是非常重要的。 7. **开发环境**...
用Python实现的Seam Carving算法,参考资料https://karthikkaranth.me/blog/implementing-seam-carving-with-python
#Generated by seam setup #Mon Jun 08 21:07:28 CST 2009 #数据库密码 hibernate.connection.password=testSeamGen #工作目录 workspace.home=E\:/workspace_seam #实体存放路径 model.package=...
在Encore工程中,Maven仓库存储了项目所需的各种依赖库,如JAR文件,确保了开发环境的一致性和可重复性。开发者可以通过配置Maven的pom.xml文件来指定所需的依赖,并自动下载到本地仓库中。 关于“repository.rar”...
在实际开发过程中,你可以根据需要扩展Seam工程,添加更多功能,如安全控制、邮件服务、国际化支持等。同时,利用Seam的事件驱动和组件模型,可以构建出更复杂、更灵活的企业级应用。记得持续关注Seam的版本更新,...
Seam是一个开源的Java EE框架,它简化了企业级应用的开发过程,通过整合各种技术如JSF、EJB、CDI(Contexts and Dependency Injection)、JPA等,提供了一种无缝的开发体验。Seam的主要优势在于它的事件驱动模型和...
《Apress.Beginning.JBoss.Seam.Feb.2007》是一本专注于JBoss Seam技术的入门教程,由Apress出版社在2007年2月发布。这本书旨在为初学者提供一个全面理解Seam框架的平台,帮助开发者更好地掌握Java企业级应用开发。...
- **建立一个新的 Eclipse 项目**:使用 Eclipse 创建一个新的 Seam 项目。 - **创建新动作**:使用 Seam-gen 自动生成动作代码。 - **创建有动作的表单(form)**:创建带有动作的表单,用于收集用户输入。 - **从...
Seam Carving是一种图像处理技术,也称为能量最小化路径法,主要用于图像尺寸调整。它通过对图像中的能量最小路径进行删除或添加来实现图像的无损缩放。在这个"Seam-Carving-canvas-demo"项目中,作者利用HTML5的...
【标题】"maven+jetty+seam+hibernate"是一个集成开发环境的配置,主要用于Java Web应用的快速开发。这个组合充分利用了Maven的项目管理和构建能力,Jetty的轻量级服务器特性,Seam的Java EE集成框架,以及Hibernate...