文档章节

AppFuse 3常见问题与解决方法

猪刚烈
 猪刚烈
发布于 2014/10/12 11:39
字数 1170
阅读 29
收藏 0
点赞 0
评论 0
很长一段时间没做SSH项目了,最近抽空看了一下升级到3.x的appfuse,对新版本使用过程中出现的一些问题进行了排查,汇总如下,以备后用。本文原文出处: http://blog.csdn.net/bluishglc/article/details/38640715 严禁任何形式的转载,否则将委托CSDN官方维护权益!

起步

使用appfuse的第一步自然是通过archetype:generate生成项目。这本不是一问题,官方的QuickStart:http://appfuse.org/display/APF/AppFuse+QuickStart 页面上给出了帮助我们生成archetype:generate命令行的工具,不幸的是这个页面引用了一些位于googleapis.com上的js文件,中国的小朋友们可能获取不了这些文件(原因你懂的),至少在写作这篇文章的时候googleapis.com是无法从国内访问的。如果缺少这些JS文件,页面就不能自动生成命令行了,虽然这个命令本身并不复杂,但是手写出它的archetypeRepository地址和archetypeArtifactId还是很费力的,下面给出四个示例,可依此为蓝本进行修改:

示例一:建立名称为demo的基于spring mvc+spring+hibernate的单一工程,appfuse版本:3.0.0

mvn archetype:generate -B -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-spring-archetype -DarchetypeVersion=3.0.0 -DgroupId=com.yourcompany -DartifactId=demo -DarchetypeRepository=https://oss.sonatype.org/content/repositories/appfuse


示例二:建立名称为demo的基于spring mvc+spring+hibernate的单一工程,appfuse版本:3.0.1-SNAPSHOT

 
mvn archetype:generate -B -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-spring-archetype -DarchetypeVersion=3.0.1-SNAPSHOT -DgroupId=com. yourcompany -DartifactId=demo -DarchetypeRepository=https://oss.sonatype.org/content/repositories/appfuse

示例三:建立名称为sample的基于spring mvc+spring+hibernate的多模块工程,appfuse版本:3.0.0
 
mvn archetype:generate -B -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-modular-spring-archetype -DarchetypeVersion=3.0.0 -DgroupId=com. yourcompany -DartifactId=sample -DarchetypeRepository=https://oss.sonatype.org/content/repositories/appfusec

示例四:建立名称为sample的基于spring mvc+spring+hibernate的多模块工程,appfuse版本:3.0.1-SNAPSHOT
 
mvn archetype:generate -B -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-modular-spring-archetype -DarchetypeVersion=3.0.1-SNAPSHOT -DgroupId=com. yourcompany -DartifactId=sample -DarchetypeRepository=https://oss.sonatype.org/content/repositories/appfusec

 
生成项目之后,按照官方文档的指导很容易就可以build并运行新建立起来的工程了,但是如果你不走运的话,就可能会遇到如下一些问题:


问题与解决方法



问题一:

使用3.0.0版本,执行mvn appfuse:full-source失败,使用 mvn appfuse:full-source -e查看错误信息,报如下错误:

[ERROR] Failed to execute goal org.appfuse.plugins:appfuse-maven-plugin:3.0.0:full-source (default-cli) on project demo: Execution default-cli of
 goal org.appfuse.plugins:appfuse-maven-plugin:3.0.0:full-source failed: java.net.UnknownHostException: raw.github.com: Unknown host raw.github.com

解决方法:

对于该问题,appfuse的作者在http://appfuse.547863.n4.nabble.com/Appfuse-failed-to-get-full-source-td4657086.html 中给出了解释,原因是github更改的子域名导致的。为此作者新建了一个3.0.1-SNAPSHOT版本来解决这一问题。就我个人的使用情况来看这是一个很奇怪的问题,第一次执行mvn appfuse:full-source确实遇到了这一问题,第二天就没有问题了,理论上raw.github.com会重定向到新的目标域名,但是看起来受到网络以及配置的种种原因,这个问题确实是有可能发生的。不过使用3.0.1-SNAPSHOT版本并非是一个好的解决方法,接下来的常见问题二就是发生在3.0.1-SNAPSHOT版本上的。

问题二:   

使用3.0.1-SNAPSHOT版本,执行mvn jetty:run时报如下错误:

java.lang.IllegalStateException: org.slf4j.LoggerFactory could not be successfully initialized.


解决方法:


这个问题确实是开发者给使用者挖的一个“坑”,仅仅从报错日志上很难找到直接原因,但是日志中的一行信息:

An API incompatibility was encountered while executing org.eclipse.jetty:jetty-maven-plugin:xxxxxx:run: java.lang.ExceptionInInitializerError: null

多少还是给了我们一些线索,检查使用3.0.1-SNAPSHOT版本生成的pom.xml文件,我们发现jetty插件的配置是这样的:

<plugin>
	<groupId>org.eclipse.jetty</groupId>
	<artifactId>jetty-maven-plugin</artifactId>
	<version>8.1.14.v20131031</version>
	<configuration>
		<webApp>
			<contextPath>/</contextPath>
		</webApp>
	</configuration>
</plugin>

再仔细地检查,我们就会发现jetty迁移eclipse之后,其版本是从9.0.0开始的,根本没有8.1.14.v20131031这个版本,而这个8.1.14.v20131031版本是怎么来的呢?看看3.0.0的pom.xml我们找到了答案:

<plugin>
	<groupId>org.mortbay.jetty</groupId>
	<artifactId>jetty-maven-plugin</artifactId>
	<version>8.1.14.v20131031</version>
	<configuration>
		<webApp>
			<contextPath>/</contextPath>
		</webApp>
	</configuration>
</plugin>

8.X版本的jetty还是其在mortbay下时的版本。很显然,作者在从3.0.0向3.0.1-SNAPSHOT升级的时候,配错了jetty的版本!这样,解决方法也就出来了,把插件配置中的<groupId>org.eclipse.jetty</groupId>改为<groupId>org.mortbay.jetty</groupId>就可以了。


问题三:


乱码


解决方法


请参考另一篇文章:AppFuse 3的乱码问题


建议

由于3.0.1-SNAPSHOT尚处于开发阶段,在不同时期使用可能会出现不同的问题,前文提及的第二个问题就是一个例子,因此建议先使用3.0.0版。


本文转载自:http://blog.csdn.net/bluishglc/article/details/38640715

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
蒲江县服务(小妹)这真找哪全套一晚上多少?

【十Ⅴィ訁:KL22228芬芬】蒲江县服务(小妹【各种特色,任您挑选】【十Ⅴィ訁:KL22228芬芬】客人虐我千百遍,我待客人如初恋我们将竭诚为您服务,只有您想不到,没有我们做不...

lxw1 ⋅ 03/17 ⋅ 0

[Java] Appfuse 最佳实践

前段时间刚写了《Catalyst Tutorial 最佳实践》,现在又手痒,给大家奉献这篇《Appfuse 最佳实践》,目的主要是趁这段相对比较空闲的时间,多写一些有用的教程,一方面在网上也看到过很多关于...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

[笔记]使用AppFuse 2.1.0生成项目并解决几个问题

step1: 生成一个基本结构的项目 进入到http://appfuse.org/display/APF/AppFuse+QuickStart页面,在 Create a project下的Choose your Stack部分填写好项目基本信息。 我的示例如下: mvn ar...

leeoo ⋅ 2011/12/24 ⋅ 0

[Java] Appfuse 源代码分析

前面《Appfuse & tapestry 小记》中介绍了Appfuse的基本使用和一些小实例,感觉不过瘾~使用这个第一次让我感觉到“轻量”的J2EE框架,的确有一种爱不释手的感觉~所以就索性另写一篇《Appfuse...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

[Java] Appfuse & tapestry 小记

忙里抽闲在《Maven2小记》 之后准备把 Appfuse 的一些使用心得记录一下,以备参考: 简介:Appfuse是一个开放源码的项目和应用程序,它由 Matt Raible开发,它集成了流行的Spring、Hibernate...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

AppFuse 3.5 发布,Web 应用框架

AppFuse 3.5 发布,此版本包括大量的改进,主要更新内容: 为 Wicket 提供 CRUD 生成支持 升级至 Tapestry 5.4 集成 Spring IO Platform,进行依赖管理 重构单元测试,使用 JUnit 4 重命名 ...

oschina ⋅ 2015/12/31 ⋅ 5

Maven 的41种骨架功能介绍

Maven 的41种骨架: ...>mvn archetype:generate 1: internal -> appfuse-basic-jsf (创建一个基于Hibernate,Spring和JSF的Web应用程序的原型) 2: internal -> appfuse-basic-spring (创建一......

Galy_绿 ⋅ 2016/02/25 ⋅ 0

maven的骨架功能介绍

Maven 的41种骨架: ...>mvn archetype:generate 1: internal -> appfuse-basic-jsf (创建一个基于Hibernate,Spring和JSF的Web应用程序的原型) 2: internal -> appfuse-basic-spring (创建一......

AcresJoe1 ⋅ 2016/10/25 ⋅ 0

AppFuse Generator

AppFuse 是一个 基于JSF,Struts,Hibernate等开放源代码工具的WEB应用 的支援框架。使用AppFuse能简单地组合以上框架,缩短开发时间。但使用AppFuse还得手动生成很多文件以及做很多手工修改...

匿名 ⋅ 2008/09/16 ⋅ 0

在eclipse中启动AppFuse应用

本文是根据官方教程中IDE部分,通过实际测试 eclipse导入appfuse生成的maven工程 前提:eclipse装maven插件,可在Help > Eclipse Marketplace里搜索关键字“maven”找到对应一堆插件,我安装...

银月光海 ⋅ 2013/06/19 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

一起读书《深入浅出nodejs》-node模块机制

node 模块机制 前言 说到node,就不免得提到JavaScript。JavaScript自诞生以来,经历了工具类库、组件库、前端框架、前端应用的变迁。通过无数开发人员的努力,JavaScript不断被类聚和抽象,...

小草先森 ⋅ 昨天 ⋅ 0

Java桌球小游戏

其实算不上一个游戏,就是两张图片,不停的重画,改变ball图片的位置。一个左右直线碰撞的,一个有角度碰撞的。 左右直线碰撞 package com.bjsxt.test;import javax.swing.*;import j...

森林之下 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部