`
up2pu
  • 浏览: 223578 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

通过AppFuse创建ssh工程问题总结

阅读更多
一、安装Maven及m2eclipse插件
这部分Maven的安装比较简单,不再详述。m2eclipse的安装有一些注意事项,参看如下文章:
http://up2pu.iteye.com/blog/1019251
m2eclipse的新版本还不稳定,创建appfuse工程时可能会出现问题。请按照上面的方法安装稳定版本。

二、创建appfuse工程
以Eclipse 3.6.2举例说明如下:
File->New->Other->Maven->Maven Project->Select an Archetype->appfuse-light-struts-archetype(当前版本是2.1.0)->输入Group Id,Artifact Id,Package->Finish

appfuse针对不同框架,提供了light版和basic版的项目模板,light版是简单版本,只有基本功能,basic版是扩展版本,提供了安全性支持,密码找回等常用功能。

三、问题解决方法
1.Hibernate dtd问题
错误信息:
Failed to execute goal org.codehaus.mojo:hibernate3-maven-plugin:2.2:hbm2ddl (default) on project light: Execution default of goal org.codehaus.mojo:hibernate3-maven-plugin:2.2:hbm2ddl failed: Could not parse configuration: file:/F:/workspace3.5/light/src/main/resources/hibernate.cfg.xml: Connection timed out: connect Nested exception: Connection timed out: connect -> [Help 1]

解决方法:
在hibernate.cfg.xml中将以下内容注释掉
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
使用如下内容
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

2.MySQL配置问题
错误信息:
ERROR - SchemaExport.execute(274) | schema export unsuccessful
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getConnection(DriverManager.java:545)
at java.sql.DriverManager.getConnection(DriverManager.java:140)
at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133)
at org.hibernate.tool.hbm2ddl.ManagedProviderConnectionHelper.prepare(ManagedProviderConnectionHelper.java:52)
at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:252)
at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:211)
at org.codehaus.mojo.hibernate3.exporter.Hbm2DDLExporterMojo.doExecute(Hbm2DDLExporterMojo.java:112)
at org.codehaus.mojo.hibernate3.HibernateExporterMojo.execute(HibernateExporterMojo.java:152)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:107)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.MojoExecutor.executeForkedExecutions(MojoExecutor.java:365)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:199)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:534)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)

解决方法:
AppFuse默认不使用MySQL,如果使用MySql需要做如下修改:
1> jdbc.properties注释掉H2配置部分,使用MySQL配置
# MySQL
# -----------------------------------------
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost/appfuse?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=utf-8
jdbc.username=root
jdbc.password=****

hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect

# Needed by Hibernate3 Maven Plugin defined in pom.xml
hibernate.connection.username=root
hibernate.connection.password=****
hibernate.connection.url=jdbc:mysql://localhost/appfuse?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=utf-8
hibernate.connection.driver_class=com.mysql.jdbc.Driver


2> pom.xml中删除H2配置,添加MySQL配置
<!-- Database settings, also defined in src/main/jdbc.properties for easy IDE testing -->
        <dbunit.dataTypeFactoryName>org.dbunit.ext.mysql.MySqlDataTypeFactory</dbunit.dataTypeFactoryName>
        <dbunit.operation.type>CLEAN_INSERT</dbunit.operation.type>
        <hibernate.dialect>org.hibernate.dialect.MySQL5InnoDBDialect</hibernate.dialect>
        <jdbc.groupId>mysql</jdbc.groupId>
        <jdbc.artifactId>mysql-connector-java</jdbc.artifactId>
        <jdbc.version>5.1.14</jdbc.version>
        <jdbc.driverClassName>com.mysql.jdbc.Driver</jdbc.driverClassName>
        <jdbc.url>jdbc:mysql://localhost/appfuse?createDatabaseIfNotExist=true&amp;amp;useUnicode=true&amp;amp;characterEncoding=utf-8</jdbc.url>
        <jdbc.username>root</jdbc.username>
        <jdbc.password>****</jdbc.password>


3.设置代理
1>Maven代理
C:\Users\sky\.m2\settings.xml
apache-maven-2.2.1\conf\settings.xml
<proxies>
  <!-- proxy
   | Specification for one proxy, to be used in connecting to the network.
   | -->
  <proxy>
    <id>optional</id>
    <active>true</active>
    <protocol>http</protocol>
    <username></username>
    <password></password>
    <host>172.11.22.33</host>
    <port>8888</port>
    <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
  </proxy>
</proxies>


2>SVN代理
报错如下:
[ERROR] 175002 : svn: PROPFIND request failed on '/svn/appfuse~svn/tags/APPFUSE_2.1.0/data/common/src'
[ERROR] 175002 : svn: Connection timed out: connect

解决方法:
C:\Users\sky\AppData\Roaming\Subversion\servers
[global]
http-proxy-host = 172.22.17.66
http-proxy-port = 8888
http-proxy-username = defaultusername
http-proxy-password = defaultpassword


3> ant代理
ANT_OPTS=-Dhttp.proxyHost=172.22.17.66 -Dhttp.proxyPort=8888

4> Java代理
java -DproxySet=true -DproxyHost=myProxyServer.com -DproxyPort=80 MyJavaApp

4.Build Path中Maven找不到tools-1.5.0.jar
C:\Program Files\Java\jdk1.5.0_21\lib>mvn install:install-file -DgroupId=com.sun -DartifactId=tools -Dversion=1.5.0 -Dpackaging=jar -Dfile=tools.jar

[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'install'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO]    task-segment: [install:install-file] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] [install:install-file {execution: default-cli}]
[INFO] Installing C:\Program Files\Java\jdk1.5.0_21\lib\tools.jar to C:\Users\sky\.m2\repository\com\sun\tools\1.5.0\tools-1.5.0.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: < 1 second
[INFO] Finished at: Wed Oct 19 16:41:56 CST 2011
[INFO] Final Memory: 3M/6M
[INFO] ------------------------------------------------------------------------


5.某些jsp页面报如下错误
Multiple annotations found at this line:
	- javax.servlet.jsp.JspException cannot be resolved to a type
	- javax.servlet.jsp.PageContext cannot be resolved to a type


解决方法:
修改pom.xml,添加jsp-api-2.1.jar
Add->javax.servlet.jsp->jsp-api:2.1:jar[provided]

6.执行Maven install报如下错误
[ERROR] Failed to execute goal org.codehaus.cargo:cargo-maven2-plugin:1.0.6:start (start-container) on project light: Execution start-container of goal org.codehaus.cargo:cargo-maven2-plugin:1.0.6:start failed: Failed to download [http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.29/bin/apache-tomcat-6.0.29.zip]: java.net.SocketException: Connection reset -> [Help 1]


解决方法:
主要是通过代理访问有问题,试了很多办法设置代理都没有解决,后来在没有代理的环境下成功运行一次,然后在有代理的环境再运行也不会报错了。所需包和配置文件已经准备好,以后运行就不需要代理访问外网了。

Tomcat下载到以下目录:
C:\Users\sky\AppData\Local\Temp\cargo\installs

7.创建appfuse-basic-struts-archetype工程后使用mvn eclipse:eclipse报错
报错信息:
[INFO] Request to merge when 'filtering' is not identical. Original=resource target/resources: output=target/classes, include=[], exclude=[**/*.java], test=false, filtering=true, merging with=resource target/resources: output=target/classes, include=[], exclude=[**/*.java], test=false, filtering=false


解决方法:
eclipse插件2.7和2.8有bug,使用2.6即可
1>mvn org.apache.maven.plugins:maven-eclipse-plugin:2.6:eclipse
2>修改工程pom.xml
    <build>
        <defaultGoal>install</defaultGoal>
        <plugins>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-eclipse-plugin</artifactId>
				<version>2.6</version>
			</plugin>
		</plugins>
	</build>

3>在工程目录下执行 mvn eclipse:eclipse

8.appfuse-basic-struts-archetype工程中使用mvn install,有些jar无法安装
问题描述:
以下jar无法下载:
plexus-utils-1.5.1.jar
surefire-api-2.4.3.jar
surefire-booter-2.4.3.jar
junit-4.0.jar
解决方法:
www.findjar.com找到所需jar包,下载到本地,然后使用mvn安装
mvn install:install-file -DgroupId=org.apache.maven.surefire -DartifactId=surefire-booter -Dversion=2.4.3 -Dpackaging=jar -Dfile=E:\software\dev\Maven\appfuse_basic_struts_missing_jar\surefire-booter-2.4.3.jar
mvn install:install-file -DgroupId=org.apache.maven.surefire -DartifactId=surefire-api -Dversion=2.4.3 -Dpackaging=jar -Dfile=E:\software\dev\Maven\appfuse_basic_struts_missing_jar\surefire-api-2.4.3.jar
mvn install:install-file -DgroupId=org.codehaus.plexus -DartifactId=plexus-utils -Dversion=1.5.1 -Dpackaging=jar -Dfile=E:\software\dev\Maven\appfuse_basic_struts_missing_jar\plexus-utils-1.5.1.jar
mvn install:install-file -DgroupId=junit -DartifactId=junit -Dversion=4.0 -Dpackaging=jar -Dfile=E:\software\dev\Maven\appfuse_basic_struts_missing_jar\junit-4.0.jar


9.appfuse-basic-struts-archetype工程中使用mvn install,test报错
错误描述:
ERROR - JDBCExceptionReporter.logExceptions(234) | Duplicate entry 'matt@raibledesigns.com' for key 'email'
ERROR - AbstractFlushingEventListener.performExecutions(324) | Could not synchronize database state with session

解决方法:
有人已经提交了该bug,回复是不修改,参见下面链接
http://issues.appfuse.org/browse/APF-1253

10.关于ojdbc14.jar
错误描述:
Could not find artifact com.oracle:ojdbc14:jar:10.2.0.4.0 in central

解决方法:
网上有很多人已经说了原因及解决方法,因为版权问题,Maven库不能发布ojdbc14.jar。可以通过手工安装的方法,将ojdbc14.jar安装到本地库。
>mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14-Dversion=10.2.0.4.0 -Dpackaging=jar -Dfile=E:\oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar

但是如果手工安装之后还是不好使怎么办,按照以下步骤操作即可:
1>删除以下的文件夹和文件
.m2\repository\com\oracle\ojdbc14\10.2.0.4.0
.m2\repository\com\oracle\ojdbc14\maven-metadata-local.xml
2>按照上面的方法重新手动安装ojdbc14.jar

11.下载jar包对应源代码
mvn dependency:sources

下一篇地址:http://up2pu.iteye.com/blog/1254093
分享到:
评论
3 楼 每个人都可爱 2013-05-06  
Hibernate dtd 这个问题太坑爹了
2 楼 up2pu 2011-06-22  
readythink 写道
谢谢!解决了问题.

很高兴对您帮助
1 楼 readythink 2011-06-21  
谢谢!解决了问题.

相关推荐

    SSH学习及开发框架-appfuse

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

    appfuse

    通过理解和学习AppFuse的这些组件及其相互作用,你可以更好地掌握Java Web开发的基础,并且能够利用AppFuse快速创建自己的项目。对于初学者来说,这是一个很好的起点,而对于经验丰富的开发者,它则可以作为一个高效...

    appfuse学习笔记(一)安装部署

    使用 Maven 的 archetype:generate 命令创建一个新的 AppFuse 项目。在命令行中输入以下命令: ``` mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeGroupId=org.appfuse -...

    AppFuse

    ### AppFuse:加速J2EE项目开发 #### 一、简介与背景 AppFuse是一个用于启动J2EE项目的工具包,它提供了一种快速而简便的方法来构建基于Java的应用程序。该工具包由Matt Raible创建,他在网络开发领域拥有丰富的...

    ibatis版appfuse eclipse工程

    已经调试好的ibatis版appfuse eclipse工程。帮助学习appfuse。表结构 和hibernate的相同。

    appfuse1.4-architecture

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

    Appfuse开发教程

    本教程将深入探讨如何利用Appfuse创建数据访问对象(DAO)和简单Java对象(POJO),并进行数据库操作。 **一、在APPFUSE建立DAO和POJO** 1. **建立一个对象,并且作XDoclet标记** POJO(Plain Old Java Object)...

    appfuse 学习笔记

    ### Appfuse 学习笔记 #### 一、Appfuse 简介 Appfuse 是一个开源框架,...通过以上步骤,可以成功搭建起基于 Appfuse 2.0 的开发环境,并创建出各种类型的应用项目。接下来可以根据实际需求进行更深入的学习和开发。

    APPFUSE工具研究.doc

    生成AppFuse项目时,可以通过执行特定的Maven命令来创建不同类型的项目,比如基于Struts、Spring或Hibernate的项目。这允许开发者根据项目需求选择最适合的框架组合,进一步提升开发效率。 总的来说,AppFuse通过...

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

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

    MAVEN 搭建APPFUSE

    通过AppFuse,开发者可以快速创建一个具有用户认证、权限控制、数据库连接等功能的基础项目结构。 步骤1:安装Maven。在开始之前,确保你的开发环境已经安装了最新版本的Maven。如果没有,可以从Apache官网下载并...

    AppFuse项目研究

    AppFuse 是一个由 Matt Raible 创建的开源项目,旨在为初学者提供一个快速入门的 J2EE 框架模板。它集成了多种流行的技术,包括 Spring、Hibernate、iBatis、Struts、Xdoclet 和 JUnit,同时也支持 Taperstry 和 JSF...

    基于AppFuse框架的B2C电子商务系统研究与实现

    然后,利用AppFuse的模板工程生成基本的项目结构,包括模型(Model)、视图(View)和控制器(Controller)文件。接着,根据业务逻辑,编写对应的Java代码,配置相关的XML文件,实现各模块的功能。 对于用户管理,...

    Appfuse教程Appfuse开发.pdf

    - 在 AppFuse 中创建一个 POJO 类,比如 `Person` 类,并为其添加 XDoclet 标签,以便自动生成对应的 Hibernate 映射文件。 - 示例代码如下: ```java package org.appfuse.model; /** @hibernate.class ...

    AppFuse2.1所需包

    AppFuse 是一个开源项目,旨在简化Java Web应用程序的开发。它提供了一个基础架构,开发者...使用AppFuse可以节省大量时间,因为它已经处理了许多常见的配置和集成问题,让开发者能够更加专注于业务逻辑和用户体验。

    appfuse2学习日记

    ### AppFuse2 学习知识点总结 #### 一、AppFuse 概述 - **定义与价值**:AppFuse 是一款开源项目,旨在利用一系列开源工具帮助开发者高效地搭建 Web 应用程序的基础架构。通过使用 AppFuse,开发人员可以在构建新...

Global site tag (gtag.js) - Google Analytics