APPFUSE2使用说明及常见问题解决方法

S32DS 3.5.8离线包怎么用?保姆级教程教你手动安装S32K3开发环境(附资源下载) 本文详细介绍了S32DS 3.5.8离线包的安装方法,适用于S32K3开发环境的手动搭建。从资源获取、完整性验证到分步安装指南,提供了全面的离线部署解决方案,特别适合军工/车企内网开发等场景。文章还包含版本选择建议、常见问题排查及团队协作方案,帮助开发者高效完成环境配置。 阅读详情

配置好MAVEN_HOME,JAVA_HOME 这个就不废话了:P

------------------------------------------------------------------------------------------
步骤:(以下步均为在命令行的输入)
------------------------------------------------------------------------------------------
第一步 通过APPFUSE创建基于Struts 2 Basic的项目:
mvn archetype:create -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-struts -DremoteRepositories=http://static.appfuse.org/releases -DarchetypeVersion=2.0.1 -DgroupId=com.yourproject -DartifactId=yourproject
执行完毕后CD到yourproject目录中
 
第二步:加入ECLIPSE工程文件,方便导入到ECLIPSE
mvn eclipse:eclipse
 
第三步:修改yourproject/pom.xml 配置文件
   1.修改生成代码方式,找到
      <genericCore>${amp.genericCore}</genericCore>
      <fullSource>${amp.fullSource}</fullSource>
      修改成:
       <genericCore>false</genericCore>
      <fullSource>true</fullSource>
      注意,这里必须吧pom.xml中的genericCore属性设为false 否则只会生成Action
   2.数据库配置信息(mysql在最底下)

第四步:生成MODEL类
先执行,这样会把默认需要的相关类先生成
mvn appfuse:full-source
然后执行
mvn appfuse:gen-model
 
第五步:修改/src/main/resources/hibernate.cfg.xml添加需要生成dao,service,action,jsp的模块
 
第六步:生成Dao,Service,Action
mvn appfuse:gen -Dentity=你的MODEL类
    这里可能会有一个提示找不到/src/main/resources/database.properties,  可以不用理会
  如果设置了很复杂的关联,这个生成过程会很痛苦,老是报targeting an unmapped的错,
  我的解决方法是找到关联的类比如USER,先把关系映射方法和属性删掉,
  然后在再把/src/main/resources/hibernate.cfg.xml其他的类声明删掉
  生成成功后再把这些加上去.
第七步: 把生成的配置文件写入到src目录下的配置文件中
mvn appfuse:install
最后执行mvn jetty:run-war 即可打包并运行项目

打完收工
 
总结:DAO和service的配置文件会生成到:/src/main/webapp/applicationContext.xml中
      struts的配置文件会生成到:/src/main/resources/struts.xml中
------------------------------------------------------------------------------------------
常用的命令介绍:
------------------------------------------------------------------------------------------
mvn appfuse:gen-model    根据数据库的表生成java类
mvn appfuse:gen          根据 POJOs.生成并安装 Tests, DAOs, Managers, Controllers and Views
mvn appfuse:full-source  把运行所需要的org.appfuse中的依赖类转换成你的包名称
mvn eclipse:eclipse      生成eclipse的项目的配置文件,用户可以直接把项目导入到eclipse中
mvn jetty:run-war        打包并且发布你的应用程序到Jetty, 查看在 http://localhost:8080
mvn appfuse:install      把生成的源代码及配置文件写入到src中
mvn integration-test     启动TOMCAT(或别的服务器)进行测试
mvn appfuse:remove       删除appfuse:gen.生成的代码
mvn appfuse:clean        清除target下的所有内容
------------------------------------------------------------------------------------------
需要注意的问题:
------------------------------------------------------------------------------------------
1.必须吧pom.xml中的genericCore属性设为false 否则只会生成Action

3.运行后出现gzip  该问题是压缩HTML的包导致,暂时屏蔽掉相关filter
 
4.使用ehcache1.3以前的版本生成的代码界面字符会变成问号,这是因为maven无法下载正确的ehcache包造成,解决方法是修改/pom.xml ,在里面加上:
 <dependency>
           <groupId>net.sf.ehcache</groupId>
           <artifactId>ehcache</artifactId>
           <version>${ehcache.version}</version>
       </dependency>
       <ehcache.version>1.4.1</ehcache.version>
后再生成代码
 
5.当某张数据表被修改需要更新相应的model时,只需执行mvn appfuse:gen -Dentity=yourmodel
  当添加新的数据表时间,除了执行mvn appfuse:gen -Dentity=yourmodel外,还需要执行
  mvn appfuse:install 来把DAO,STRUTS配置写入到SRC下的相应文件中.
 
6.如果希望生成的model类不在默认的model包根下,只需要在resources/hibernate.cfg.xml中修改想要生成的包路径就行,比如:
默认情况下UserInfo会生成到com.my.app.model下,把配置改成
<mapping class="com.my.app.model.user.UserInfo"/>
UserInfo会生成到com.my.app.model.user下。
 
7.使用Candy for Appfuse 插件时发现model都无法生成,
这是因为%MAVEN_HOME%/conf/settings.xml 中localRepository属性默认为~/.m2/repository
~即当前用户在系统中的用户目录,比如WINDOWS在c:/Documents and Settings/username
因为路径中包含空格,所以Candy找不到,解决方法就是在命令行操作
 
8.关于乱码的问题
对于APPFUSE生成的工程运行时乱码是很常见的现象,造成该现象的原因也有几种:
为了偷懒,这里引用一篇网上的文章: http://www.blogjava.net/43880800/archive/2006/11/18/81892.html
 
对于国际化文件*.properties文件的编辑,有两个ECLIPSE插件可以推荐:Properties Editor 和 ResourceBundleEditor 
 
不过我的IDE有点问题,这两个都装上却不好使,不知道是怎么回事。用了个笨方法:写个批处理来做。内容如下:
echo begin encoding
start C:/Progra~1/Java/jdk1.6.0/bin/native2ascii -encoding UTF-8 d:/workspace/dayawa/src/ApplicationResources_zh.properties d:/workspace/dayawa/src/ApplicationResources_zh_CN.properties
echo done!
 
保存成 encodeProperties.bat 执行就行,当然,相关路径要设置成你的实际路径。
 
  9. 执行“mvn jetty:run-war”时,会根据POJO先删除数据库里的表再重建,如果不想对数据进行操作可以修改pom.xml,将<configuration>下的drop熟悉修改为 false。不过执行“mvn jetty:run-war”仍然会执行建表操作,出现大量的错误日志,不过没有影响。
 
  10. 执行“mvn jetty:run-war”时,会清空数据表的数据并插入默认的数据,默认的数据在%PROJECT_HOME%/src/main/ resources/default-data.xml配置,这个很讨厌。修改pom.xml中的<dbunit.operation.type>的配置为NONE可以屏蔽这部分操作。
 
  11.在注册新用户时,如果用户名或邮件已经被注册,返回表单改后提交报DataIntegrityViolationException, 这是appfuse的一个BUG,解决方法:
     
    修改UserSecurityAdvice.before()
        在最后的else里加上:user.setVersion(null);
 
    修改UserManagerImpl.saveUser():把最后的try改成:
     try {
            return dao.saveUser(user);
        } catch (DataIntegrityViolationException e) {
           throw new UserExistsException(e.getCause().getCause().toString());
        } catch (EntityExistsException e) { // needed for JPA
            throw new UserExistsException(e.getCause().getCause().getMessage());
        }
     然后在SignupAction.save()改成:
     if(user==null){
      this.addActionMessage(getText("signup.welcome"));
      return INPUT;
      
     }
        user.setEnabled(true);
        //user.setRegistTime(new Date());
        // Set the default user role on this new user
        user.addRole(roleManager.getRole(Constants.USER_ROLE));
       
        try {
            userManager.saveUser(user);
        } catch (AccessDeniedException ade) {
            // thrown by UserSecurityAdvice configured in aop:advisor userManagerSecurity
            log.warn(ade.getMessage());
            getResponse().sendError(HttpServletResponse.SC_FORBIDDEN);
            ade.printStackTrace();
            return null;
        } catch (UserExistsException e) {
            log.warn("message  "+e.getMessage());
            List<String> args = new ArrayList<String>();
           
            if(e.getMessage().indexOf("'"+user.getUsername()+"'")!=-1){
             args.add(user.getUsername());
             addActionError(getText("errors.existing.username", args));
            }else{
             args.add(user.getEmail());
             addActionError(getText("errors.existing.email", args));
            }          
            // redisplay the unencrypted passwords
            user.setPassword(user.getConfirmPassword());
            //to fix the bug that is when username exists and changed newusername throw Incorrect result size: expected 1, actual 0 Exception
           
            user.setVersion(null);
            //e.printStackTrace();
            return INPUT;
        }
        saveMessage(getText("user.registered"));
        getSession().setAttribute(Constants.REGISTERED, Boolean.TRUE);
        // log user in automatically
        UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken(
                user.getUsername(), user.getConfirmPassword(), user.getAuthorities());
        auth.setDetails(user);
        SecurityContextHolder.getContext().setAuthentication(auth);
        // Send an account information e-mail
        mailMessage.setSubject(getText("signup.email.subject"));
    
        try {
            sendUserMessage(user, getText("signup.email.message"), RequestUtil.getAppURL(getRequest()));
        } catch (MailException me) {
            addActionError(me.getCause().getLocalizedMessage());
            me.printStackTrace();
        }
        return SUCCESS;
光学薄膜设计入门:Essential Macleod中文版从安装到实战全攻略 本文为光学薄膜设计初学者提供Essential Macleod软件从安装部署到实战应用的全流程中文指南。详细解析了软件核心界面、材料管理及工作流程,并通过一个完整的宽带增透膜设计实例,手把手演示膜系构建、优化与分析方法,帮助用户快速掌握这一业界标杆工具,跨越理论与实操的门槛。 阅读详情

相关推荐

Anaconda镜像源切换全攻略:从清华源到恢复默认设置的完整流程

本文详细介绍了Anaconda镜像源的管理与优化,重点讲解了如何配置清华源以提升国内下载速度。内容涵盖镜像源工作原理、清华源详细配置步骤、多源管理策略、常见问题排查以及如何安全恢复默认设置,帮助用户构建完整的镜像源管理体系。

weixin_28828243的博客 1021

AppFuse1.8中BaseAction的一些主要方法说明

功能:通过请求的参数来决定该执行哪一个方法,而不像一般的Action,从Execute方法执行。在一个窗体中包括两个以上同名的按钮时,由Struts来决定具体执行那个按钮操作,减少了Action类,增加了请求处理的灵活性AppFuse1.7与AppFuse1.8的BaseAction区别AppFuse1.7是继承LookupDispatchAction, 需要复写 getKeyMethodMap(

Sonic 的技术博客 2393

【超详细】安装了anaconda后,Ubuntu18+COLMAP配置疯狂踩坑踩至魔怔的记录

本博客收集了博主在Ubuntu18系统中编译COLMAP所遇到的困难,提供了解决方法,也收集了目前网上大多数的坑,除此之外,也为Ubuntu18系统下COLMAP的安装提供了一种新的路径。

Stay_Foo_lish的博客 3509

AppFuse系列文档说明

我发布的AppFuse系列文档是我翻译的AppFuse1.6的使用Struts和Sping和Hibernate的部分,并根据1.6.1的内容添加了AppGen工具的使用。    如果你不想完全使用WebWork2、Spring完全替代Struts的MVC部分的话,那么你只看这部分就够了,如果你使用Spring和WebWork2替代了作为MVC部分的Struts的话,那么你需要看作者写的相关的部

兔八哥的狗窝 7381

Ubuntu24安装MongoDB(解压版)

依据前面 Linux 发行版本的信息,选择你需要的版本,文件格式选择 tgz 格式,最后点击 Download(下载到你的电脑)或 点击 Copy link 左侧图标(复制下载链接在使用服务器下载)依据前面 Linux 发行版本的信息,选择你需要的版本,文件格式选择 tgz 格式,最后点击 Download(下载到你的电脑)或 点击 Copy link 左侧图标(复制下载链接在使用服务器下载)默认情况下,只能在本机访问 MongoDB,要想远程访问 MongoDB,需要修改配置文件。

rao991207823的博客 2022

版图学习汇总十一(DRC、LVS注意事项)

esd。

weixin_56071389的博客 2262

AppFuse1.7 文档说明与总结

<!--google_ad_client = "pub-2016433482135581";google_ad_width = 728;google_ad_height = 90;google_ad_format = "728x90_as";google_ad_type = "text_image";google_ad_channel ="";google_colo

Sonic 的技术博客 1902

Monocle2在R 4.3环境下的终极避坑指南:从安装到可视化全流程解析

本文提供了在R 4.3环境下安装和运行Monocle2的完整解决方案,重点解决了依赖包兼容性、源码修改及BEAM分析报错等关键问题。文章详细解析了从环境准备、依赖包处理、源码安装验证到从Seurat对象转换、拟时轨迹构建、高级可视化及性能优化的全流程,旨在帮助用户顺利完成单细胞拟时分析。

weixin_29206669的博客 1355

appfuse概述

appfuse概述 Appfuse 顾名思义,application fuse,它就像一团胶水一样,将开发application各层面(web层,Logic层,persistence层)的零件粘在一起,从而形成一个application的模板和雏形。当中涉及到的技术和框架包括persistence的hibernate,logic层的springframework,web层的struts(web

2730

基于RK3588调试WiFi模块AIC8800

本文介绍了在RK3588平台上移植AIC8800 WiFi模块驱动的过程。开发环境基于Linux 6.1内核和Buildroot文件系统。驱动移植步骤包括:将驱动包放入SDK指定目录、修改Makefile、编译内核、放置固件文件、手动加载驱动模块等。文章还分析了两种常见异常情况:无法识别模块(检查USB信号线路和供电)和偶发断连(检查硬件连接和调整PHY寄存器)。成功加载后可通过ifconfig看到wlan0节点。

qq_45147279的博客 667

使用LabVIEW创建和分析柱状图:从基础绘制到高级数据分析的完整指南

LabVIEW,全称为Laboratory Virtual Instrument Engineering Workbench,是由美国国家仪器公司(National Instruments, NI)开发的一款图形化编程语言。自1986年首次推出以来,LabVIEW凭借其强大的数据采集、分析和控制能力,在工程、科研、教育等领域得到了广泛应用。与传统的文本编程语言不同,LabVIEW采用了图形化编程方式,用户通过连接不同的函数节点来实现复杂的逻辑和算法。

qq_38334677的博客 775

Appfuse part 2

关于本教程本教程将会向你展示如何创建一个业务Facade类(和一个JUnit Test)与DAO we created in Part I交互操作。 在AppFuse的语境下,这被称作一个Manager类,它的主要职责是持久户层(DAO)和web层之间的一个桥梁,它也很好的把展示层和数据库层(例如Swing应用)解耦,Managers必定是应用程序所有的业务逻辑所在的地方。 我在“

esunboy的专栏 815

【人工智能】OpenClaw网关API速率限制报错全解析 API rate limit reached. Please try again later.

对应HTTP标准状态码为429(请求过多)。该报错集中出现在OpenClaw GATEWAY DASHBOARD的聊天会话界面,核心特征为:用户最初以为是单一模型服务商的问题,先后更换OpenAI、Gemini、Ollama、Moonshot、Mercury-2等多个主流大模型API后,该报错仍稳定触发,尤其在执行复杂任务时高频出现。

奶爸的编程之路,也就一周冷个三天 6459

使用appfuse2.0快速搭建环境(myeclipse)

 关键字: appfuse 快速搭建环境 tomcat 通常我们使用APPFUSE2.0的项目,导入eclipse里,无法正常编译,只能使用maven我感觉挺不舒服的,经过探索,发现这样配置以后,就会方便了很多,而且还已经直接在eclipse中的tomcat里运行大家可能对appfuse2.0都已经很熟悉了,如果你还不是很了解随便在网上都已经找到入门的稳定。appfuse官方网站地址:htt

人生可不可以停下来休息休息 3212

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

APPFUSE2 使用说明

  APPFUSE2 使用说明及常见问题解决方法 配置好 MAVEN_HOME, JAVA_HOME ------------------------------------------------------------------------------------------ 步骤:(以下步均为在命令行的输入) ---------------------------------------...

北京堵车王的专栏 224

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

appfuse

<br />使用 AppFuse 快速构建 J2EE 应用<br />本文以一个 J2EE 开发者的角度,借助一个简单的应用示例,在融合了个人经验的基础上介绍了如何用 AppFuse 一步步地构建 J2EE 项目。通过阅读本文,读者不仅能够学会用 AppFuse 进行开发,而且能够充分体会到 AppFuse 提供的“快速开发”的优越性。<br />关于 AppFuse 的特性、架构以及为什么要使用 AppFuse,AppFuse 的创始人 Matt Raible 在 《使用 AppFuse 的七个理由》一文

scoripo2010的专栏 436

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

appfuse2.0 to maven

下载appfuse2.0源码有两种方法一种是找到他的cvs下载。还有一种就是用maven下载,就是appfuse2.0官网上介绍的下载方法。好了,现在我们开始下载appfuse2.0的源码,用第二钟方法:1、下载安装 JDK5 或以上版本。2、下载安装 Mysql5.x 。 3、建立一个本地的 stmp服务器,或者修改 mail.properties(在 src/main/

人生可不可以停下来休息休息 2370

appfuse2

项目组里有同事坚持使用appfuse来生产项目,其实appfuse挺好的,从前台页面到后台操作数据库会帮我们生成一系列的代码。 曾经研究过appfuse1.9.4版,现在已经发展到了2.0版本,而且使用了maven。 用法: 1、下载maven,配置环境变量 set JAVA_HOME=D:\jdk1.6 set MAVEN_HOME=D:\apache\maven...

lu2002lulu的专栏 169

appfuse1.7配置说明存在错误

appfuse-1.7说明文件中有问题ant deploy-web 有问题,没有将全部的文件发布到 webapps下.实际应该使用 ant deploy命令. 4. Setup Tomcat by running "ant setup-tomcat". This puts a MySQL JDBC driver (and jta.jar) in $CATALINA_HOME/common/lib,

wutao8818的专栏 875

把AppFuse配置启动起来的步骤

&lt;!--google_ad_client = "pub-2016433482135581";google_ad_width = 728;google_ad_height = 90;google_ad_format = "728x90_as";google_ad_type = "text_image";google_ad_channel ="";goog

Sonic 的技术博客 3400

appFuse2.x第一篇

AppFuse is an open source project and application that uses open source tools built on the Java platform to help you develop Web applications quickly and efficiently. It was originally developed to el

良子 2642

appfuse配置说明

appfuse安装完全按照官网即可。 http://appfuse.org/display/APF/AppFuse+QuickStart 关于appfuse安装完成后 1、先调用mvn appfuse:full-config,将项目从"embedded mode"修改为"full-source mode"。然后mvn jetty:run运行。如果运行不成功,一些常见问题的解决方案如下: ...

xin3336019的博客 296

18步启动appfuse2.0.2

1 安装 jdk 5+ maven 2.09 mysql 5.x 2 配置 JAVA_HOME M2_HOME 在path中添加%JAVA_HOME%/bin;%M2_HOME%/bin 3 将下载下来的appfuse-dependencies-2.0.2解压到.m2/repository 下面 4 创建自己存放项目的目录 例如 c://appfuse 5 cd c://appfuse 6 运行创

728

AppFuse学习笔记-控制层

1. 我们先详细介绍一下Struts的控制器的工作流程。    首先,控制器(ActionServlet)进行初始化工作,读取配置文件struts-config.xml,为不同的Struts模块初始化相应的ModuleConfig对象。相应地有ControlConfig集合、FormBeanConfig集合、ForwardConfig集合和MessageResourcesConfig集合等。   

下一道彩虹 4410
上一篇: maven 使用小记1
下一篇: FreeBSD与Linux再比较
dankes
博客等级 码龄22年 41粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值