AppFuse 3常见问题与解决方法
起步
使用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的单一project,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的单一project,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的多模块project。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的多模块project,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
生成项目之后。依照官方文档的指导非常easy就能够build并运行新建立起来的project了。可是假设你不走运的话,就可能会遇到例如以下一些问题:
问题与解决方法
问题一:
使用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版。
AppFuse 3常见问题与解决方法的更多相关文章
- NHibernate常见问题及解决方法
NHibernate常见问题及解决方法 曾经学过NHibernate的,但是自从工作到现在快一年了却从未用到过,近来要巩固一下却发现忘记了许多,一个"in expected: <end ...
- C#用ado.net访问EXCEL的常见问题及解决方法
C#用ado.net访问EXCEL的常见问题及解决方法,除了像sql server,access常见的数据库,其实Excel文件也可以做为数据库访问. ado.net访问excel的实例: OleDb ...
- Nacos 常见问题及解决方法
Nacos 开源至今已有一年,在这一年里,得到了很多用户的支持和反馈.在与社区的交流中,我们发现有一些问题出现的频率比较高,为了能够让用户更快的解决问题,我们总结了这篇常见问题及解决方法,这篇文章后续 ...
- 安装scrapy框架的常见问题及其解决方法
下面小编讲一下自己在windows10安装及配置Scrapy中遇到的一些坑及其解决的方法,现在总结如下,希望对大家有所帮助. 常见问题一:pip版本需要升级 如果你的pip版本比较老,可能在安装的过程 ...
- python网络爬虫(1)——安装scrapy框架的常见问题及其解决方法
Scrapy是为了爬取网站数据而编写的一款应用框架,出名,强大.所谓的框架其实就是一个集成了相应的功能且具有很强通用性的项目模板. 其实在Linux和 Mac安装,就简单的pip命令即可: pip i ...
- 浅谈Excel开发:九 Excel 开发中遇到的常见问题及解决方法
Excel开发过程中有时候会遇到各种奇怪的问题,下面就列出一些本人在开发中遇到的一些比较典型的问题,并给出了解决方法,希望对大家有所帮助. 一 插件调试不了以及错误导致崩溃的问题 在开发机器上,有时可 ...
- 转:SVN常见问题与解决方法
今天发现一个SVN很奇葩的问题.原来SVN提交的时候也是识别提交路径的大小写的... 发现网上有篇博客总结的挺好的.转载下来,转载出路:http://blog.csdn.net/shinn613/ar ...
- php常见问题以及解决方法
在使用php的过程中,经常会出现一些问题,下面是我遇到的一些问题以及解决方法 1,乱码问题,中文乱码问题 原因是:编码方式不一样,有UTF-8,gbk-2312等编码方式,不同的编码方式导致浏览器在解 ...
- Direct3D11学习:(零)常见问题及解决方法整理
转载请注明出处:http://www.cnblogs.com/Ray1024 一.概述 在D3D11学习的这个系列中,单独写一篇文章来记录自己学习过程中遇到的问题及最后的解决方法. 这篇文章的目的 ...
随机推荐
- windows怎么进如debug调试
主要说一下64位Win7使用debug程序的方法 首先你要下载一个DOSBOX程序 这个程序是一个dos模拟器 这个程序的制作目的是运行经典的DOS游戏 -.- 下载地址:http://www.dos ...
- 题解报告:poj 3233 Matrix Power Series(矩阵快速幂)
题目链接:http://poj.org/problem?id=3233 Description Given a n × n matrix A and a positive integer k, fin ...
- S2深入.NET编程总结
不知从几何时,我也开始变得懒了,以往为了学习的那股子斗劲也早已不在,是时候反思反思了.失败的检测成绩希望可以把我唤醒. 经过总结,在本书中大概学到了这些知识: 1.如果一个类可序列化,则它的子类和包含 ...
- Rsync 传输不需要输入密码
1.背景 1) 一个作为服务器端:VM3(IP: 3.9.8.151) 2) 一个作为客户端:VM2(IP: 3.9.8.157) 3) 服务器端和客户端网络 ...
- 开发日记(项目中SQL查询的优化)
今天发现自己之前写的一些SQL查询在执行效率方面非常不理想,于是尝试做了些改进. 需求为查询国地税表和税源表中,国税有而税源没有的条目数,之前的查询如下: SELECT COUNT(NAME) ...
- JS——scroll封装
DTD未声明:document.body.scrollTop DTD已声明:document.documentElement.scrollTop 火狐谷歌IE9:window.pageYOffset ...
- JS——sort
1.a-b升序 <script> var arr = [2, 3, 1, 5, 0]; function compare(a, b) { return a - b; } console.l ...
- [Windows Server 2012] Tomcat安装方法
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:Win20 ...
- java中 数组 list map之间的互转
三者之间转换关系,一张图清晰呈现. 上代码: 其中的maputils是apache的collection包. package util; import java.util.ArrayList; imp ...
- python web 开发学习路线
转载,备着 自己目前学习python web 开发, 经过两个月的摸索,目前对web开发有了浅显的认识,把自己的学习过程贴出来.1.python入门推荐老齐<从零开始学python>,&l ...