`
JackyCheng2007
  • 浏览: 249869 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

从appfuse开始学习Spring和Hibernate - (1)构建项目

阅读更多
千里之行,始于足下。结合例子学习概念,比较靠谱。本文介绍如何开始从appfuse开始学习Spring和Hibernate。
如果你还没有安装mysql,请先安装。同时也建议你安装一个workbench来方便管理数据库。

1. 利用Maven构建appfuse项目
万能的Maven提供了很多丰富的Archetype让你可以轻松构建一个包含了你想使用的框架的基本项目,而避免让你从零开始。你可以在这里(http://docs.codehaus.org/display/MAVENUSER/Archetypes+List)查看Maven提供的所有Archetype。
在命令行输入下面的命令,你就可以根据向导生成一个appfuse框架了。
mvn archetype:generate

第一步就是选择Archetype。请输入:
org.appfuse.archetypes:appfuse-basic-spring

下面的步骤很直观,不再赘述。
或者用下面的命令一步搞定:
mvn archetype:generate -B -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-spring-archetype -DarchetypeVersion=2.1.0 -DgroupId=study.spring -DartifactId=appfuse -DarchetypeRepository=http://oss.sonatype.org/content/repositories/appfuse


2. 利用Eclipse的Maven插件m2eclipse,你可以导入刚刚创建的项目:appfuse。导入过程需要几分钟,maven需要下载一些依赖的lib。

产生的项目里面只有一个类:App,其他的类呢?原来默认生成的项目是嵌入式的,其他的类都作为jar被引入而非源代码。如果你想生成源代码在这个项目里面,可以这样:
mvn appfuse:full-source

你可能会遇到错误:
[ERROR] Failed to execute goal org.codehaus.mojo:appfuse-maven-plugin:2.0.2:full
-source (default-cli) on project appfuse: svn: PROPFIND request failed on '/svn/
appfuse/tags/APPFUSE_2.0.2/data/common/src'
[ERROR] svn: Connection refused: connect

添加:<trunk>https://svn.java.net/svn/appfuse~svn/</trunk>到下面的位置
<configuration>
					<genericCore>${amp.genericCore}</genericCore>
					<fullSource>${amp.fullSource}</fullSource>
					<trunk>https://svn.java.net/svn/appfuse~svn/</trunk>
				</configuration>

你可能会遇到错误:
[ERROR] Failed to execute goal org.codehaus.mojo:appfuse-maven-plugin:2.0.2:full
-source (default-cli) on project appfuse: Execution default-cli of goal org.code
haus.mojo:appfuse-maven-plugin:2.0.2:full-source failed: A required class was mi
ssing while executing org.codehaus.mojo:appfuse-maven-plugin:2.0.2:full-source:
org/codehaus/plexus/embed/Embedder

这个是因为不支持maven3,需要用maven2. 成功以后看看你的项目里面会多了很多包和类,这些就是appfuse的源代码了。
事情还没完,LabelTag会有编译错误:
The type org.springframework.core.env.EnvironmentCapable cannot be resolved. It is indirectly referenced from required .class files

这是因为spring版本需要升级,修改为:
<spring.version>3.1.1.RELEASE</spring.version>


3. 运行
输入下面的命令启动这个app:
mvn jetty:run

如果你遇到了这个错误(不知道这个算不算bug):
[ERROR] Failed to execute goal org.codehaus.mojo:aspectj-maven-plugin:1.0:compil
e (default) on project my-project-domain: The artifact org.springframework:sprin
g-aspects referenced in aspectj plugin as an aspect library, is not found the pr
 oject dependencies -> [Help 1]


那么你需要添加spring-aspects dependency。(你可以利用maven插件工具查找并添加)
<dependency>
        	<groupId>org.springframework</groupId>
        	<artifactId>spring-aspects</artifactId>
        	<version>3.1.1.RELEASE</version>
        </dependency>


再次运行,成功后在浏览器打开http://localhost:8080.

默认有两个用户:admin/admin, user/user

4. 在Eclipse里面运行
配置Maven Build:



5. 加入debug和JMX远程监控参数
-server -Xms256m -Xmx256m -XX:PermSize=64m -XX:MaxPermSize=128m -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n -Dcom.sun.management.jmxremote.port=9000
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false

加入这些JVM参数之后,就可以在eclipse里面debug了。同时可以用JConsole或JVisualVM来监控JVM了。

6. 配置log4j
Eclipse能显示的日志的大小是有限的,所以可以让日志写到文件里面以便分析。修改log4j.xml,添加FileAppender:
<appender name="FILE" class="org.apache.log4j.FileAppender">
    	<param name="File" value="appfuse.log"/>
    	<param name="Append" value="false" />
        <layout class="org.apache.log4j.PatternLayout">
          <param name="ConversionPattern" value="%t %-5p %c{2} - %m%n"/>
        </layout> 
    </appender>
   <root>
        <level value="TRACE"/>
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>
    </root>

修改spring的日志级别为TRACE:
<logger name="org.springframework">
        <level value="TRACE"/>
    </logger>

这样我们就能在项目根目录下面的appfuse.log里面看到非常详细的日志了。下一步就是要分析这个日志来看看Spring是怎么样工作的。


关于appfuse你可以参考:http://appfuse.org/display/APF/AppFuse+QuickStart











  • 大小: 118.8 KB
1
0
分享到:
评论
2 楼 hailongai33 2014-05-19  
我最终运行的结果 为 :
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4:14.931s
[INFO] Finished at: Mon May 19 17:08:43 CST 2014
[INFO] Final Memory: 6M/129M
[INFO] ------------------------------------------------------------------------
[ERROR] No plugin found for prefix 'archetype' in the current project and in the
plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the
repositories [local (C:\Users\acer\.m2\repository), central (http://repo.maven.a
pache.org/maven2)] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
ch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please rea
d the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/NoPluginFoundF
orPrefixException

楼主知道什么原因不?求交流
1 楼 小卡kare 2013-05-01  
顶楼主!!

相关推荐

    appfuse-light-webwork-spring-jdbc-1.8.2.zip_Java 8_appfuse_webwo

    appfuse对java web开发很有帮助,里边用了分层的思想进行开发的

    appfuse2.0.2 Struts2 hibernate Spring 构建的基于SQLServer2005 的ssh2项目的过程全记录

    appfuse2.0.2 Struts2 hibernate Spring 构建的基于SQLServer2005 的ssh2项目的过程全记录 网上很多帖子介绍appfuse2构建过程的,但是基于SQLServer2005的没有,顶多一笔带过,另外对于期间出现的各种问题也没有个说明,...

    Struts2、Spring和Hibernate应用实例.

    在本文中,笔者将Struts2.0.6、Spring2.0.6和Hibernate3.1进行整合,希望通过这样的整合示例,让读者了解这些框架各自的特点,以便于在自己的项目中,根据实际情况,尽快的过渡到Struts2的时代。本文的内容基于...

    SSH学习及开发框架-appfuse

    appfuse 有struts2+hibernate+spring的整合 springmvc+hibernate+spring的整合 多模块,但模块都有 学习开发参考使用非常方便 可以到官方下载最新版的,我只是把自己下载的打包整理一下 注意哈,都是基于maven的...

    建立项目原型骨架的步骤(最新版本appfuse)appfuse2.1.0-M2

    建立项目原型骨架的步骤(最新版本appfuse)appfuse2.1.0-M2 spring3.0 hibernte3.3 struts2.1.8

    AppFuse项目研究

    Appfuse是由Matt Raible开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、iBatis、struts、Xdoclet、junit 等基础框架给出了示范。提供了对Taperstry和JSF的支持

    appfuse-spring.pdf

    密码:ilovejava.taobao.com

    appfuse 学习笔记

    Appfuse 一个开放源码的项目和应用程序,帮助我们快速而高效的地开发。 Appfuse是Matt Raible 开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、iBatis、Struts、xDcolet、Junit、Taperstry...

    Appfuse1.9至2.0.2

    主要是自己从网络上搜集的一些关于appfuse1.8.2-2.0.2的一些相关资料,间或有点自己试验的记录,还有点maven和quartz的东东,之前我主要是用1.8.2构建项目,感觉还不错,希望对想学习appfuse的人有些帮助.

    AppFuse学习笔记(J2EE入门级框架)

    Appfuse是Matt Raible 开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、iBatis、Struts、xDcolet、Junit、Taperstry、JSF等基础框架给出了示范。在持久层,AppFuse采用了Hibernate O/R映射...

    玩转appfuse--使用appfuse建设MVC网站

    使用appfuse进行网站开发,appfuse是关于Spring,Struts2,MVC3,Hibernate等技术的案例,可以加快建设网站。 1.文档说明。 2.可以执行的案例,亲测无误。

    appfuse1.4-architecture

    06年时的appfuse,学习SSH架构的经典入门框架。相对比较老的资料,可以欣赏一下当时的架构,向牛人致敬

    appfuse-tutorial-struts-1.6.zip_appfuse

    关于企业人员管理的struts应用样例,包含人员添加、信息修改及注销等。

    可直接使用的appfuse项目

    AppFuse是一个集成了众多当前最流行开源框架与工具(包括Hibernate、ibatis、Struts、Spring、DBUnit、Maven、Log4J、Struts Menu、Xdoclet、SiteMesh、OSCache、JUnit、JSTL等(现在还有lucene的,无敌了))于一身的...

    使用 AppFuse 快速构建 java

    使用 AppFuse 快速构建 java 使用 AppFuse 快速构建 java

    appfuse-documentation-2.1.0官方文档

    AppFuse是一个集成了众多当前最流行开源框架与工具(包括Hibernate、ibatis、Struts、Spring、DBUnit、Ant、Log4J、Struts Menu、Xdoclet、SiteMesh、OSCache、JUnit、JSTL)于一身的Web开发框架。AppFuse提供了Web...

    appfuse

    使用appfuse2.0,下载过来的实例源码,没有jar包

    appfuse2学习日记

    自己学习appfuse2的相关日志,里面包含了一些在网上已经文档的综合.

Global site tag (gtag.js) - Google Analytics