My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
FAQ  

Featured, Phase-Deploy
Updated Feb 4, 2010 by duanai...@gmail.com

JWS-JPT FAQ


这个项目能做什么?

  jws是一个开发环境。通过一些脚本和一些默认约定及配置,将WEB项目的编码、编译、打包、测试、调试简洁化,IDE用的是eclipse,但只用最核心的代码编辑等(JDT)功能,避免了由于安装大量插件拖慢eclipse,空占系统内存。

  jws是一个即拷即用的绿色环境。内嵌了jdk、ant、maven、eclipse,不用担心因为环境变量和别的系统冲突而导致莫名其妙的错误。默认集成了svn、maven的eclipse插件,由于eclipse只使用了platform和JDT,没有别的插件,CVS插件也不包括,当然CVS还是很常用的,你可以单独加进来。目前只支持WIN32环境。

  jpt是从实际项目中抽出来的一个针对maven的项目模板,目的是将web开发过程细化为用“纯静态页面实现表现层”、“Java类实现业务逻辑”、“SQL语句实现数据存取”。三步之间没有直接的耦合,只是通过命名约定关联起来。通过默认的通配配置和spring动态注入实现基于约定的零配置。零配置不是不能配置,而是默认配置和约定可以适用几乎所有情形,非常特殊的可以单独配置。

  jpt将Web开发中表现层完全剥离出来成为客户端,单独测试、单独演进。服务端逻辑完全独立于HTTP,即使没做过Web开发的程序员也可以轻松实现。数据库操作则完全SQL化。这样开发过程将变成这样:

  • 销售接单子;
  • 系统分析员简单分析下需求初步确定数据结构;
  • 页面设计者使用jws从数据结构生成初始项目并带有默认的crud功能;
  • 页面设计者在系统分析员或项目经理指导下与美工配合基于jpt设计页面,形成Demo界面,与客户沟通重复迭代此步;
  • 客户确认需求;
  • 页面设计者与美工配合进一步美化界面(注意:此时的页面代码基本就是系统最终的客户端代码,可能会稍有变化的是数据字段的命名),同时系统分析员与其他开发人员根据界面功能设计功能,根据Demo的模拟数据设计数据库;
  • 程序员开始实现功能(注意:此时的代码都是纯逻辑的,程序员可以不熟悉html、css、javascript等客户端技术,而且熟悉sql的可以专门负责sql实现),测试组开始做测试用例,客服组开始编写用户手册,系统分析员、页面设计者和美工开始参与其他项目;
  • 核心功能实现后,提交用户确认,进一步迭代需求。

subversion下载报错怎么办?

  如果使用者在WindowsXP操作系统下,在用eclipse插件或者TortoiseSVN客户端下载源代码时,可能会出现如下错误:

  RA layer request failed

  svn: REPORT request failed on '/work/!svn/vcc/default'

  svn: REPORT of '/work/!svn/vcc/default': Could not read response body:

  改成https连接方式就可以避免了。_

我下载源代码后,在执行第6步时,出现Searching repository for plugin with prefix:'archetype'问题,是什么原因?

  由于源码中没有包含依赖的jar库,需要从远程仓库下载,此时如果防火墙阻止了

<jws_home>
/tools/jdk/bin/java.exe,就会报此错误。如果使用的是Windows自带的防火墙,可以打开“控制面板-->Windows防火墙”,选择“例外”标签,点击“添加程序”,把
<jws-home>
/tools/jdk/bin/java.exe选中即可。如果是第三方产品,可以在其相应的防火墙配置中对
<jws-home>
/tools/jdk/bin/java.exe放行即可。

我自己有开发工具,我希望用自己的myeclipse、jdk、ant、m2,只用该开发框架可以吗,如何实现?

  eclipse、jdk、ant、m2这些工具是在

<jws_home>
/bin/setvars.bat中指定的路径,相应的生成的项目下也有bin/setvars.bat,也要做相应的修改。不过用此框架不建议使用myeclipse,因为本框架中只有编辑java代码会用eclipse来检查语法错误,进行重构,调试以及查看jetty控制台输出等,其他功能根本用不上,甚至JDT都显得有点大。装了myeclipse没有几斤内存是跑不起来的。所以除了jdk可以考虑用本地的(也不推荐),其他都推荐用jws的。我比较喜欢下面的组合:

  • 编辑、调试java用JDT,主要用其重构功能;
  • 编辑html,css用Dreamweaver;
  • 编辑js文件、sqlmap映射文件用notepad++。

为什么执行自己生成的sql脚本产生的数据库记录是乱码?

  项目带的sql文件是UTF-8格式,mysql客户端编码格式需要是UTF-8才能正确执行。可以在my.ini中设置客户端编码如下:

[mysql]

default-character-set=utf8

  或者在启动mysql命令时指定。注意不要直接把sql文件内容拷贝到命令行执行,而要使用加载文件的方式。例如:mysql -uroot -p mytest<02-init-basic.sql,sql文件可以用相对路径或绝对路径,只要保证能在指定的路径找到文件即可。Navicat for MySQL对UTF-8支持很好,推荐使用。当然也可以用记事本把sql文件另存为ANSI格式。

如何将生成的项目导入eclipse

  首先要执行<项目目录>/bin/create-eclipse-project.bat创建eclipse项目文件,然后执行

<jws_home>
/bin/install.bat设置工作区,这时会在
<jws_home>
/workspace下生成.metadata文件夹,最后执行
<jws_home>
/bin/eclipse.bat启动eclipse,选择"File">"Import..."将项目导入eclipse。

jpt如何封装多种数据库间的差异

  简单说是用freemarker在编译期间对iBATIS的sqlmap文件进行了预处理,根据pom文件中设置的数据库类型有选择的组合差异性sql。例如“字符串连接”操作,在mysql是concat函数,oracle是||,而sqlserver是+,那么就可以分别在mysql.ftl,oracle.ftl和sqlserver.ftl中用freemarker语法定义concat函数,函数的实现就是针对具体数据的特殊操作。而在sqlmap中进行字符串连接的地方用freemarker语法调用concat函数。编译是自定义的maven插件会根据pom文件中设置的数据库类型来决定包含那个ftl文件。

jpt如何把一个url对应到一条sql?

  • 客户端javascript对url做统一处理,转换成符合规范的服务端url,并传递必要(method)参数;
  • urlrewrite过滤此url,提取操作参数,转换成类似<操作类型>/<结果类型>/<模型>/<操作>的请求转给struts2的action处理;
  • action根据<操作>确定要执行的方法,根据<模型>确定将请求数据封装成什么对象传给service,根据<操作类型>确定传给service什么样的附加参数,根据<结果类型>确定result的类型(json或html);
  • service根据<模型>和方法本身确定sql的名字;
  • iBATIS根据名字匹配sql。
Comment by jack.z...@gmail.com, Jun 23, 2008

我增加菜单,可是没有显示出来,不知道为什么

Comment by mokai...@gmail.com, Jun 23, 2008

非常棒的一个项目 请教几个问题 数据库的表为啥规定死以 t_开头 s结尾呢? 并且表名或字段中间不允许有 下划线出现 其次 这项目怎么打成一个完整的war包方便在其它服务器使用 不能做个插件吗

Comment by project member duanai...@gmail.com, Jun 24, 2008

表的命名规则和自动生成代码的freemarker模板中的规则有关,模板在test/resources/template下,对应规则在test/resources/template/lib/global.ftl中。打包请用<项目目录>/bin/package

Comment by project member duanai...@gmail.com, Jun 24, 2008

增加了菜单,需要把此菜单与权限关联

Comment by jack.z...@gmail.com, Jun 25, 2008

谢谢回复,这是一个非常好的框架,现在正努力说服公司采用这个框架.

Comment by wujih...@hotmail.com, Jun 25, 2008

当mysql表字段类型为text,添加数据的时候,提示该字段不能大于65535个字符,但是实际上我只输入了一个字读。我看了,程序是按byte对待的, 应该怎么处理?

Comment by project member duanai...@gmail.com, Jun 26, 2008

text一般直接对应String,如果是blob字段可对应到byte,需要在结果集中类似下面配置 <result property="data" column="file_data" jdbcType="BLOB" />

Comment by jack.z...@gmail.com, Jun 29, 2008

请问一下,字典管理模块主要有什么作用,一般是用在什么样的场景下?

Comment by project member duanai...@gmail.com, Jul 1, 2008

字典主要用于枚举常量,一般存放下拉列表里的值,例如“币种”;常量表则存放控制类常量,即要用在条件判断中的值,例如“人民币”。

Comment by jeekc...@gmail.com, Jul 22, 2008

页面和sql中如何读取session呢?

Comment by jack.z...@gmail.com, Jul 28, 2008

请问一下,这个框架查询和排序是怎么做的啊?

Comment by project member duanai...@gmail.com, Aug 6, 2008

sql中唯一可用的session是loginUser,可以扩展User类,添加需要在sql中处理的属性。 查询可写在index.html或list.html中,查询input参数name指定为filters.xxx,sql中用filters.xxx就可以引用了,排序使用sorters.xxx=ASC|DESC指定按哪个字段排序,sql中可以使用类似 <dynamic prepend="ORDER BY"> <isNotNull prepend="," property="sorters.xxx">字段 $sorters.xxx$</isNotNull> </dynamic> 来排序

Comment by lijie....@gmail.com, Dec 8, 2008

有没有struts1的呢

Comment by hiyya...@gmail.com, Jan 21, 2009

您好,

昨天下载后参照docs中的readme.txt第6步,执行 generate.bat时,出现找不到web这个task的错误,怎么解决呢?
D:\my-help\open-project\jws-java web studio\jws-jpt11?.0-src\bin>generate.bat

+ Error stacktraces are turned on. INFO? Scanning for projects... INFO? Searching repository for plugin with prefix: 'archetype'. INFO? ------------------------------------------------------------------------ ERROR? BUILD FAILURE INFO? ------------------------------------------------------------------------ INFO? Invalid task 'web': you must specify a valid lifecycle phase, or a goal i n the format plugin:goal or pluginGroupId:pluginArtifactId:pluginVersion:goal INFO? ------------------------------------------------------------------------ INFO? Trace org.apache.maven.BuildFailureException?: Invalid task 'web': you must specify a v alid lifecycle phase, or a goal in the format plugin:goal or pluginGroupId:plugi nArtifactId:pluginVersion:goal

at org.apache.maven.lifecycle.DefaultLifecycleExecutor?.getMojoDescriptor
(DefaultLifecycleExecutor?.java:1521)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor?.segmentTaskListBy
AggregationNeeds?(DefaultLifecycleExecutor?.java:405)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor?.execute(DefaultLi?
fecycleExecutor.java:137)
at org.apache.maven.DefaultMaven?.doExecute(DefaultMaven?.java:336) at org.apache.maven.DefaultMaven?.execute(DefaultMaven?.java:129) at org.apache.maven.cli.MavenCli?.main(MavenCli?.java:287) at sun.reflect.NativeMethodAccessorImpl?.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl?.invoke(NativeMethodAccessorImpl?.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl?.invoke(DelegatingMethodAcces?
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)

at org.codehaus.classworlds.Launcher.main(Launcher.java:375)

INFO? ------------------------------------------------------------------------ INFO? Total time: < 1 second INFO? Finished at: Wed Jan 21 15:53:31 CST 2009 INFO? Final Memory: 2M/4M INFO? ------------------------------------------------------------------------

D:\my-help\open-project\jws-java web studio\jws-jpt11?.0-src\workspace>

Comment by hiyya...@gmail.com, Jan 21, 2009

上面的问题已解决,jws-java web studio多了空格,去掉就可以了。

Comment by owen...@gmail.com, Feb 17, 2009

你好 我在做8、执行<JWS-HOME>/workspace/mytest/bin/jetty.bat启动jetty服务器 的时候 报错 INFO? Internal error in the plugin manager executing goal 'org.codehaus.mojo:as pectj-maven-plugin:1.0-beta-2:compile': Unable to find the mojo 'org.codehaus.mo jo:aspectj-maven-plugin:1.0-beta-2:compile' in the plugin 'org.codehaus.mojo:asp ectj-maven-plugin' org/aspectj/bridge/IMessageHolder

google了一下也没有找到什么原因

Comment by 156814...@qq.com, Aug 25, 2009

你好,我安装时maven报以下错误: INFO? ------------------------------------------------------------------------ ERROR? BUILD ERROR INFO? ------------------------------------------------------------------------ INFO? Failed to resolve artifact.

Missing:


1) fmpp:fmpp:jar:0.9.13

Try downloading the file manually from the project website.
Then, install it using the command:
mvn install:install-file -DgroupId?=fmpp -DartifactId?=fmpp -Dversion=0.9.13
-Dpackaging=jar -Dfile=/path/to/file
Alternatively, if you host your own repository you can deploy the file there:
mvn deploy:deploy-file -DgroupId?=fmpp -DartifactId?=fmpp -Dversion=0.9.13 -

Dpackaging=jar -Dfile=/path/to/file -Durl=url? -DrepositoryId?=id?

Path to dependency:
  1. jpt.plugins:jpt-generator-plugin:maven-plugin:1.0
2) fmpp:fmpp:jar:0.9.13

1 required artifact is missing.

for artifact:

jpt.plugins:jpt-generator-plugin:maven-plugin:1.0

from the specified remote repositories:

central (http://repo1.maven.org/maven2)

INFO? ------------------------------------------------------------------------ INFO? For more information, run Maven with the -e switch INFO? ------------------------------------------------------------------------ INFO? Total time: 3 minutes 55 seconds INFO? Finished at: Wed Aug 26 13:32:43 CST 2009 INFO? Final Memory: 11M/20M INFO? ------------------------------------------------------------------------

不知道怎么解决呢? 谢谢


Sign in to add a comment
Powered by Google Project Hosting