AppFuse 2.1刚刚于2011年4月4日发布。2.1比2.1.0.M2最大的好处是支持jetty:run快速部署,便于你在开发时进行测试(详见下文)。另外,也修正了许多bugs. 对于想要用好SSH (Struts2, Spring, Hibernate)的朋友来说,AppFuse是不可多得的宝贵范例。 我最近正在
AppFuse 2.1刚刚于2011年4月4日发布。2.1比2.1.0.M2最大的好处是支持jetty:run快速部署,便于你在开发时进行测试(详见下文)。另外,也修正了许多bugs.对于想要用好SSH (Struts2, Spring, Hibernate)的朋友来说,AppFuse是不可多得的宝贵范例。
我最近正在研究SSH,并且想用学到的SSH技术,开发一个论坛项目。
我发现,学好SSH和用好SSH真是两件完全不同的事情。“学好”是针对基本概念,而“用好”是针对最佳实践。
我在SSH的基本概念学了一阵后,到要动手写代码了,却发现无从下手。因为SSH是3个既相对独立,又相互关联的框架。要想把SSH这3个框架整合到1个项目中,并且要用一些最佳实践整合好,并不是一件容易的事情。
AppFuse正好做了整合SSH的事情,从2007年7月11日推出AppFuse 2.0 RC1,到现在的2.1.0.M2,不仅整合好了SSH,还整合了Maven, Spring Annotations, JSF, Spring MVC, Stripe, Tapestry 5, Wicket, JDK5, Annotations, JSP 2.0, Servlet 2.4, JPA.
这两天把最新版的AppFuse 2.1范例下载下来,编译打包运行,这期间遇到了不少问题,不过还好,基本上都被我给解决了。同时给AppFuse的作者Matt开出了两个JIRA Issues.
http://issues.appfuse.org/browse/APF-1249 : i18n - displaytag_zh*.properties and errors_zh*.properties converted but input files included in WAR instead of output files
http://issues.appfuse.org/browse/APF-1250 : i18n - displaytag_zh*.properties and errors_zh*.properties not converted by native2ascii in pom.xml
这篇博文主要是把AppFuse 2.1的安装运行步骤总结一下,以后会继续把AppFuse的使用经验和大家分享。
1. 运行环境
安装好以下环境(我用的是Windows 7 Home Basic):
Java SE 1.6.0_23
MySQL Server 5.1
Maven 2.2.1 (有些情况下AppFuse的操作在用Maven 3.0.3时会报错)
Tomcat 7.0.2
Eclipse 3.6.1 SR2
m2eclipse
2. AppFuse Quickstart
打开AppFuse Quickstart页面备查:http://appfuse.org/display/APF/AppFuse+QuickStart
3. 生成basic范例
在一个空文件夹下,从命令行提示窗口,运行Quickstart中下面的范例生成命令
mvn archetype:generate -B -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-struts-archetype -DarchetypeVersion=2.1.0 -DgroupId=com.mycompany -DartifactId=myproject -DarchetypeRepository=http://oss.sonatype.org/content/repositories/appfuse
上述命令运行成功后,会在当前文件夹下,生成一个myproject目录。进入目录,会看到范例源代码。
4. 获取全部源代码
在有pom.xml的目录下,运行下面的命令,获取全部AppFuse的源代码:
mvn appfuse:full-source
5. MySQL的root的password
在pom.xml文件结尾处,找到MySQL的root的password的元素,写上你的root的口令。pom.xml默认root的口令是空。
6. 编译运行
在myproject目录下,在命令行提示窗口,运行下面的命令让AppFuse运行在Jetty服务器上。
mvn jetty:run
AppFuse 2.1最大的改进之一,就是使用了mvn jetty:run来快速部署测试你的应用程序。maven-jetty-plugin能根据pom.xml的描述,在不打WAR包的情况下,自动找到相关的文件来部署运行Web 应用程序进行开发测试,能为你省去了大量打WAR包,然后再部署到Tomcat上测试的时间。另外maven-jetty-plugin也能扫描你的源代码,一旦发现有源文件更新,它会自动重新部署Web应用。
等提示jetty启动完毕后,在浏览器中输入http://localhost:8080/来访问AppFuse. Login界面的用户名和口令都是admin,登录进入AppFuse范例系统。
你也可以运行下面命令在生成WAR包,部署到Tomcat上:
mvn clean package
7. 开发
AppFuse 2.1不建议使用mvn eclipse:eclipse来生成eclipse项目文件,因为eclipse plugin的bug太多了。Matt建议直接在eclipse里使用m2eclipse,来打开AppFuse进行开发。
我在Eclipse里用m2eclipse进行Maven的操作很顺利。同时发现,若在MyEclipse (我用的是MyEclipse for Spring 8.6.0),取消Maven4MyEclipse功能,直接用m2eclipse也同样很顺利。
接下来,你就可以用Eclipse看AppFuse的代码,在Eclipse里用m2eclipse发mvn jetty:run命令打包运行,再对照着读AppFuse 的Tutorials (http://appfuse.org/display/APF/Tutorials)了。
==================================================================
利用Maven构建appfuse。
步骤如下:
1)Maven下载下载apache-maven-2.2.1-bin.zip 下载地址:http://apache.freelamp.com/maven/binaries/apache-maven-2.2.1-bin.zip
2)下载appfuse支持包。下载地址: -2.0.2.zip(开发中需要的各个版本的jar包)
3)Maven环境搭建
1.解压缩apache-maven-2.2.1-bin.zip到你想安装的位置,如E:javaapache-maven-2.2.1。
2.设置Maven系统环境变量:PATH中添加E:javaapache-maven-2.2.1bin。
3.确认Maven的安装,在命令行输入mvn - version提示Apache Maven 2.2.1即安装成功;
4)将下载下来的appfuse支持包解压。如:E:javam2repository
5)修改E:javaapache-maven-2.2.1confsettings.xml
如下:
6)新建项目:cmd 进入E:workspace>
mvn archetype:generate -B -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse- basic-struts -DarchetypeVersion=2.0.2 -DgroupId=com.appsafe -DartifactId=publicCenter
(注: 可以到http://appfuse.org/display/APF/AppFuse+QuickStart+-+Chinese 选择你所需要的套件,此处以Struts2为
例).出现BUILD SUCCESS为成功
7)获取appfuse源码:
先进入项目E:workspacepublicCenter> 再运行mvn appfuse:full-source
8)修改项目的pom.xml中的
9)生成eclipse项目 :mvn eclipse:eclipse
加入支持库:Window -> Preferences -> Java -> Build Path -> Classpath Variables -> New,Name输入M2_REPO,Path输入E:javam2repository
10)试运行:mvn jetty:run
11)自动生成代码:此处需要下载模板。mvn appfuse:copy-templates此时会在src/test/resources/appfuse下面多出很多.ftl的文件。这就是模板文件。可以自定义修改。
12)创建表结构:
CREATE TABLE `Employee` (
`id` bigint(20) NOT NULL auto_increment
`code` varchar(10) NOT NULL
`dept` varchar(50) NOT NULL
`name` varchar(20) NOT NULL
`status` varchar(10) NOT NULL
`telephone` varchar(20) default NULL
`title` varchar(50) NOT NULL
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
13)通过表来生成pojo:mvn appfuse:gen-model
删除@GeneratedValue(strategy=IDENTITY)就不报错了
14)修改pom.xml用于指示是否生成daomanager........
15)自动生成代码:mvn appfuse:gen -Dentity=Employee
16) mvn appfuse:install -Dentity=Employee 把生成的源代码及配置文件写入到targetclasses
17)启动项目发现乱码问题:修改displaytag_zh_CN.properties其编码规则为utf-8
18)用tomcat启动时其实只需要:如建了一个项目包e:/publicWebapp只需要拷贝一下文件进入
【1】E:workspacepublicCentersrcmainwebapp
【2】E:workspacepublicCentertargetclasses
【3】新建lib放入E:workspacepublicWebAppWEB-INF
【5】使用命令: mvn dependency:copy-dependencies下载支持包。拷贝E:workspacepublicCentertargetdependency下的包至lib。
19)直接把依赖包拷贝到LIB下面然后启动项目。这时会报一个displaytag错误。其实是tomcat里的jsp.jar和appfuse依赖包里的jsp2.0-api.jar有重叠。删去依赖包中的jsp2.0-api.jar在启动就不报错了。
20)
下面就是一些goal命令了,这里和Maven1有不少不同,常用的命令有:
创建Maven的普通java项目:mvn archetype:create -DgroupId=com.codeline.commons -DartifactId=pjoName
创建Maven的Web项目:mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp
-DarchetypeArtifactId=maven-archetype-webapp
编译源代码:mvn compile (或者:mvn compiler:compile)
编译测试代码:mvn test-compile
运行测试:mvn test
产生site:mvn site
打包:mvn package
在本地Repository中安装jar:mvn install
清除产生的项目:mvn clean
生成eclipse项目:mvn eclipse:eclipse
生成idea项目:mvn idea:idea
组合使用goal命令,如只打包不测试:mvn -Dtest package
编译测试的内容:mvn test-compile
只打jar包:mvn jar:jar
只测试而不编译,也不测试编译:mvn test -skipping compile -skipping test-compile (这里要特别注意 -
skipping 的灵活运用,当然也可以用于其他组合命令)
清除eclipse的一些系统设置:mvn eclipse:clean
根据pojo生成相关代码文件 :mvn appfuse:gen
下面具一个如何把dwr.jar包上传到本地数据仓库的例子,一看例子,大家就明了了。
- 下载dwr.jar包到本地,我把它放到了 C:/ (C盘根目录),
- 进入“命令行提示符”,进入到C:/,然后执行 mvn install:install-file -Dfile=dwr.jar -DgroupId=dwr.mocha -DartifactId=dwrDart -Dversion=1.0 -Dpackaging=jar 这样就把dwr传到了本地仓库中(我的本地仓库地址为:E:appm2repository),上传到仓库中的jar包名为dwrDart-1.0.jar目录结构为dwr/mocha/dwrDart/1.0/dwrDart-1.0.jar
====================================================================
以下为网上一朋友记录的心得
之前部门配了一个Struts2的JAVA开发框架使用情况不是很理想,想通过Appfuse了解一下别人的做法,过程无比的艰辛。如果早知道APPFUSE需要不断的下载文件,我肯定不会用。
1、项目介绍
appfuse是一个框架生成工具。如果全部设置妥当,可以通过几个简单的命令,达到生成整个JAVA开发框架的目的,想使用Struts,spring 或者其他的开源工具,而又缺少合理的开发框架的,可以一试。 APPFUSE是使用MAVEN来运行的。MAVEN和ANT类似。
2、项目的获得
查看了很多资料,走了不少弯路。不少文章说“获得APPFUSE的两种方式,MAVEN下载或者CVS”,不太准确。
最好还是下载Maven以后,再appfuse-dependencies-2.0.2.zip或者 appfuse-dependencies-2.0.1.zip解压到Maven的.m2repository目录下面去 。
环境:jdk1.5.0_11 MYSQL 5.0TOMCAT 6.0.14,apache-maven-2.0.10,appfuse-dependencies-2.0.1.zip 。
注意版本。MS因为“DLL HELL”经常受人抨击,但是JAVA的简直就是“Version hell under hell”
3、遇到的问题和解决
(1)环境变量设置。
写批处理文件的时候,“SET MAVEN_HOME=D:appfuseapache-maven-2.0.10 ;” ,后面多了一个分号,浪费了半个小时。
(2)MYSQL
在服务管理器中启动失败。查看操作系统日志内容 “ Default storage engine (InnoDB) is not available”。
网上搜索到一个解决方法:“更改 myini 里面Default storage engine=InnoDB修改为MYISAM ”,事实证明这么做不好,MYSQL是启动了,但是后面引发了其他的错误。
最后的解决:解决方法:
1、删除在MySQL安装目录下的Data目录中的ib_logfile0,ib_logfile1INFO oDBibdata1
2、重新启动MySQL的Service
(3)apache-tomcat-6.0.14.zip
跑的过程中,会自动下载apache-tomcat-6.0.14.zip ,为了节约时间,自己手动下载了一个,但是一直报错。后来发现是官方上的apache-tomcat-6.0.14.zip 出了问题,下载下来的只有4.8M,总共有6.2M。所以解压错误。
(4)SQL SERVER2005连接
把MYSQL更改为2005的时候,注意把TCP/IP打开,同时端口使用下面的IPALL 的TCP动态端口 。默认是2385
(5)SQL SERVER2005下,使用mvn appfuse:gen model命令生成POJO出错
Can't generate seam entities| org.hibernate.cfg.JDBCBinderException: Duplicate class name
因为默认了去生成DBO和SYS等用户下的所有表和视图。出现了重名的POJO,所以报错。
targettest-classeshibernate.reveng.xml 里面加入
(6)生成DAOSERVICE报错
Property 'http://apache.org/xml/features/nonvalidating/load-external-dtd' is not recognized.
org.xml.sax.SAXNotRecognizedException: Property 'http://apache.org/xml/features/nonvalidating/load-external-dtd' is not recognized.
解决:更换APPFUSE 2.0.2为2.0.1。项目作者MATT拿这个BUG没辙。。。。
(7)生成奇怪的POJO
数据库里面有Table1结果生成了Table1.java和Table1Id.java两个对象。导致后面的一系列问题。
解决:数据库里面取消双主键
最后评论一下:APPFUSE,实现了常用开源框架的自动生成,不论是Struts,struts2,springMVC等,都能直接生成从持久到逻辑和测试,甚至页面的基本文件。
==============================================================
只生成一个表的代码
1.pom.xml中增加 revengfile
2. hibernate.reveng.ftl中增加
(注意,一定要match-schema)
3. src/main/resources/jdbc.properties中增加
hibernatetool.metadatadialect=org.hibernate.cfg.reveng.dialect.OracleMetaDataDialect
=================================================================
Ejb3PropertyGetAnnotation.ftl里面的内容generateJoinColumnsAnnotation(property)修改为
${pojo.generateJoinColumnsAnnotation(propertycfg)}

win11安装语言包错误0x800f0950什么原因?当我们在给windows11系统安装新语言包时,有时会遇到系统提示错误代码:0x800f0950,导致语言包安装流程无法继续进行下去。导致这个错误代码一般是什么原因,又要怎么解决呢?今天小编就来给大家说明一下win11安装语言包错误0x800f0950的具体解决步骤,有需要的用户们赶紧来看一下吧。win11电脑错误代码0x800f0950解决技巧1、首先按下快捷键“Win+R”打开运行,然后输入:Regedit打开注册表。2、在搜索框中输入“

GoogleDocs在学校和工作环境中变得很流行,因为它提供了文字处理器所期望的所有功能。使用Google文档,您可以创建文档、简历和项目提案,还可以与世界各地的其他用户同时工作。您可能会注意到GoogleDocs不包括MicrosoftWord附带的所有功能,但它提供了自定义文档的能力。使用正确的字体可以改变文档的外观并使其具有吸引力。GoogleDocs提供了大量字体,您可以根据自己的喜好从中选择任何人。如果您希望将自定义字体添加到Google文档,请继续阅读本文。在本文中

Notepad++主要由开发人员用于编辑源代码,由临时用户用于编辑文本。但是,如果您刚刚升级到Windows11,则在您的系统上下载和安装该应用程序可能具有挑战性。因此,我们将讨论在Windows11上下载和安装记事本++。此外,您可以轻松阅读我们关于修复Notepad++在Windows上没有响应的详细指南。记事本++可以在Windows11上运行吗?是的,记事本++可以在Windows11上有效工作,而不会出现兼容性问题。更具体地说,没有臃肿的选项或错误,只需在一个非常小的编辑器中即可。此外

Steam客户端无法识别您计算机上的任何游戏吗?当您从计算机上卸载Steam客户端时,会发生这种情况。但是,当您重新安装Steam应用程序时,它会自动识别已安装文件夹中的游戏。但是,别担心。不,您不必重新下载计算机上的所有游戏。有一些基本和一些高级解决方案可用。修复1–尝试在同一位置安装游戏这是解决这个问题的最简单方法。只需打开Steam应用程序并尝试在同一位置安装游戏即可。步骤1–在您的系统上打开Steam客户端。步骤2–直接进入“库”以查找您拥有的所有游戏。第3步–选择游戏。它将列在“未分类

<p><strong>HaloInfinite(Campaign)</strong>是一款第一人称射击视频游戏,于2021年11月推出,可供单人和多用户使用。该游戏是Halo系列的延续,适用于Windows、XboxOne和Xbox系列的用户X|S。最近,它还在PC版XboxGamePass上发布,以提高其可访问性。大量玩家报告在尝试使用WindowsPC上的<strong>Xbox应

我们深知MicrosoftWindows11是一个功能齐全且设计吸引人的操作系统。但是,用户一直要求Windows11Lite版本。尽管它提供了重大改进,但Windows11是一个资源匮乏的操作系统,它可能很快就会使旧机器混乱到无法顺利运行的地步。本文将解决您最常问的关于是否有Windows11Lite版本以及是否可以安全下载的问题。跟着!有Windows11Lite版本吗?我们正在谈论的Windows11Lite21H2版本是由Neelkalpa的T

虚拟机怎么安装Win11?近期有用户想要尝试使用VirtualBox虚拟机安装Win11,但是不太清楚具体的操作方法,针对这一情况,小编将为大家演示使用VirtualBox安装Win11的方法,很多小伙伴不知道怎么详细操作,小编下面整理了使用VirtualBox安装Win11的步骤,如果你感兴趣的话,跟着小编一起往下看看吧! 使用VirtualBox安装Win11的步骤 1、要下载VirtualBox,请前往VirtualBox官方下载页面,下载适用于Windows的.exe文件。如果你

重装系统对于电脑小白来说真不是一件简单的事情,那么下面就和大家聊聊电脑重装精简版win7系统的一个方法吧。1、在小白一键重装系统官网中下载小白三步装机版软件并打开,软件会自动帮助我们匹配合适的系统,然后点击立即重装。2、接下来软件就会帮助我们直接下载系统镜像,只需要耐心等候即可。3、下载完成后软件会帮助我们直接进行在线重装Windows系统,请根据提示操作。4、安装完成后会提示我们重启,选择立即重启。5、重启后在PE菜单中选择XiaoBaiPE-MSDNOnlineInstallMode菜单进入


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Zend Studio 13.0.1
Powerful PHP integrated development environment

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.
