#

搭建TOMCAT+JPETSTORE出现的错误

ool.java:684)
        at java.lang.Thread.run(Thread.java:595)
2007-04-01 13:52:17,234 [http-8080-Processor20] DEBUG org.apache.struts.action.R
equestProcessor - processForwardConfig(ForwardConfig[name=null,path=/common/Erro
r.jsp,redirect=false,contextRelative=false,module=null])
2007-04-01 13:52:17,968 [http-8080-Processor20] DEBUG org.apache.struts.util.Mod
uleUtils - Get module name for path /shop/viewCategory.shtml
2007-04-01 13:52:17,968 [http-8080-Processor20] DEBUG org.apache.struts.util.Mod
uleUtils - Module name found: default
2007-04-01 13:52:17,968 [http-8080-Processor20] DEBUG org.apache.struts.action.R
equestProcessor - Processing a 'GET' for path '/shop/viewCategory'
2007-04-01 13:52:17,968 [http-8080-Processor20] DEBUG org.apache.struts.util.Req
uestUtils -  Looking for ActionForm bean instance in scope 'request' under attri
bute key 'productListForm'
2007-04-01 13:52:17,968 [http-8080-Processor20] DEBUG org.apache.struts.util.Req
uestUtils -  Creating new ActionForm instance of type 'com.jdon.strutsutil.Model
ListForm'
2007-04-01 13:52:17,968 [http-8080-Processor20] DEBUG org.apache.struts.util.Req
uestUtils -  --> com.jdon.strutsutil.ModelListForm@1ff2e1b
2007-04-01 13:52:17,968 [http-8080-Processor20] DEBUG org.apache.struts.action.R
equestProcessor -  Storing ActionForm bean instance in scope 'request' under att
ribute key 'productListForm'
2007-04-01 13:52:17,968 [http-8080-Processor20] DEBUG org.apache.struts.action.R
equestProcessor -  Populating bean properties from this request
2007-04-01 13:52:17,968 [http-8080-Processor20] DEBUG org.apache.struts.action.R
equestProcessor -  Looking for Action instance for class com.jdon.framework.samp
les.jpetstore.presentation.action.ProductListAction
2007-04-01 13:52:17,968 [http-8080-Processor20] DEBUG org.apache.struts.action.R
equestProcessor -   Returning existing Action instance
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.bussinessproxy.co
nfig.TargetMetaDefXmlLoader - [JdonFramework]metaDefs size:12
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.controller.servic
e.WebServiceFactory - [JdonFramework] getService was found in:productManager
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.security.web.Http
RequestUserSetup - [JdonFramework] setArrtibute:REMOTE_ADDRESS=127.0.0.1
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.container.access.
ServiceAccessorImp - [JdonFramework] enter getService: proxyInstanceFactoryVisit
able in action
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.container.visitor
.HttpSessionProxyVisitor - [JdonFramework] get the optimized instance for the ke
y com.jdon.framework.samples.jpetstore.service.bo.ProductManagerImpproxyInstance
FactoryVisitable
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.bussinessproxy.dy
ncproxy.DynamicProxyWeaving - [JdonFramework]call method:com.jdon.framework.samp
les.jpetstore.service.ProductManager.getProductIDsListByCategory
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.aop.AopClient - [
JdonFramework] enter AOP invoker2 for:com.jdon.framework.samples.jpetstore.servi
ce.bo.ProductManagerImp method:getProductIDsListByCategory
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.aop.joinpoint.Adv
isorChainFactory - [JdonFramework] enter  create PointcutAdvisor
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.aop.joinpoint.Adv
isorChainFactory - [JdonFramework] find all service's interceptos size=1
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.aop.joinpoint.Adv
isorChainFactory - [JdonFramework] find pojoService's interceptos size=4
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.aop.reflection.Pr
oxyMethodInvocation - [JdonFramework] method.getName() :getProductIDsListByCateg
ory
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.aop.AopClient - [
JdonFramework] MethodInvocation will proceed ...
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.aop.interceptor.C
acheInterceptor - [JdonFramework]methodMatchsModelGET: returnClassName = com.jdo
n.controller.model.PageIterator
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.aop.interceptor.P
oolInterceptor - [JdonFramework] enter PoolInterceptor
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.aop.interceptor.P
oolInterceptor - [JdonFramework] borrow a object:com.jdon.framework.samples.jpet
store.service.bo.ProductManagerImp id:17427094 from pool
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.aop.interceptor.P
oolInterceptor - [JdonFramework]pool state: active=1 free=0
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.aop.reflection.Pr
oxyMethodInvocation - [JdonFramework] finish call all inteceptors
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.aop.reflection.Pr
oxyMethodInvocation - [JdonFramework]enter method reflection
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.aop.reflection.Pr
oxyMethodInvocation - [JdonFramework] target:com.jdon.framework.samples.jpetstor
e.service.bo.ProductManagerImp service's method:getProductIDsListByCategory runn
ing..
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.aop.reflection.Pr
oxyMethodInvocation - [JdonFramework] it is pojo target service
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.aop.reflection.Me
thodInvokerUtil - [JdonFramework] method invoke: com.jdon.framework.samples.jpet
store.service.bo.ProductManagerImp method=getProductIDsListByCategory
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.framework.samples
.jpetstore.service.bo.ProductManagerImp -  getProductIDsListByCategory
2007-04-01 13:52:17,984 [http-8080-Processor20] ERROR com.jdon.framework.samples
.jpetstore.service.bo.ProductManagerImp -  Dao error : com.ibatis.dao.client.Dao
Exception: Error starting SQL Map transaction.  Cause: java.sql.SQLException: In
valid authorization specification,  message from server: "Access denied for user
 'banq'@'localhost' (using password: YES)"
Caused by: java.sql.SQLException: Invalid authorization specification,  message
from server: "Access denied for user 'banq'@'localhost' (using password: YES)"
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.aop.reflection.Me
thodInvokerUtil - [JdonFramework] method invoke successfully
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.aop.interceptor.P
oolInterceptor - [JdonFramework] realease a object:com.jdon.framework.samples.jp
etstore.service.bo.ProductManagerImp to pool
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG com.jdon.bussinessproxy.dy
ncproxy.DynamicProxyWeaving - [JdonFramework]call method:getProductIDsListByCate
gory finish!
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG org.apache.struts.action.E
xceptionHandler - ExceptionHandler caught this exception:
java.lang.Exception: getPageIterator's result is null, check your ModelListActio
n subclass
        at com.jdon.strutsutil.ModelListAction.execute(ModelListAction.java:67)
        at org.apache.struts.action.RequestProcessor.processActionPerform(Reques
tProcessor.java:421)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja
va:226)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:116
4)
        at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:173)
        at com.jdon.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodin
gFilter.java:92)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:214)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:825)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:738)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpo
int.java:526)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFol
lowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:684)
        at java.lang.Thread.run(Thread.java:595)
2007-04-01 13:52:17,984 [http-8080-Processor20] DEBUG org.apache.struts.action.R
equestProcessor - processForwardConfig(ForwardConfig[name=null,path=/common/Erro
r.jsp,redirect=false,contextRelative=false,module=null])
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG org.apache.struts.util.Mod
uleUtils - Get module name for path /shop/viewCategory.shtml
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG org.apache.struts.util.Mod
uleUtils - Module name found: default
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG org.apache.struts.action.R
equestProcessor - Processing a 'GET' for path '/shop/viewCategory'
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG org.apache.struts.util.Req
uestUtils -  Looking for ActionForm bean instance in scope 'request' under attri
bute key 'productListForm'
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG org.apache.struts.util.Req
uestUtils -  Creating new ActionForm instance of type 'com.jdon.strutsutil.Model
ListForm'
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG org.apache.struts.util.Req
uestUtils -  --> com.jdon.strutsutil.ModelListForm@2bfdff
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG org.apache.struts.action.R
equestProcessor -  Storing ActionForm bean instance in scope 'request' under att
ribute key 'productListForm'
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG org.apache.struts.action.R
equestProcessor -  Populating bean properties from this request
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG org.apache.struts.action.R
equestProcessor -  Looking for Action instance for class com.jdon.framework.samp
les.jpetstore.presentation.action.ProductListAction
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG org.apache.struts.action.R
equestProcessor -   Returning existing Action instance
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG com.jdon.bussinessproxy.co
nfig.TargetMetaDefXmlLoader - [JdonFramework]metaDefs size:12
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG com.jdon.controller.servic
e.WebServiceFactory - [JdonFramework] getService was found in:productManager
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG com.jdon.security.web.Http
RequestUserSetup - [JdonFramework] setArrtibute:REMOTE_ADDRESS=127.0.0.1
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG com.jdon.container.access.
ServiceAccessorImp - [JdonFramework] enter getService: proxyInstanceFactoryVisit
able in action
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG com.jdon.container.visitor
.HttpSessionProxyVisitor - [JdonFramework] get the optimized instance for the ke
y com.jdon.framework.samples.jpetstore.service.bo.ProductManagerImpproxyInstance
FactoryVisitable
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG com.jdon.bussinessproxy.dy
ncproxy.DynamicProxyWeaving - [JdonFramework]call method:com.jdon.framework.samp
les.jpetstore.service.ProductManager.getProductIDsListByCategory
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG com.jdon.aop.AopClient - [
JdonFramework] enter AOP invoker2 for:com.jdon.framework.samples.jpetstore.servi
ce.bo.ProductManagerImp method:getProductIDsListByCategory
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG com.jdon.aop.joinpoint.Adv
isorChainFactory - [JdonFramework] enter  create PointcutAdvisor
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG com.jdon.aop.joinpoint.Adv
isorChainFactory - [JdonFramework] find all service's interceptos size=1
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG com.jdon.aop.joinpoint.Adv
isorChainFactory - [JdonFramework] find pojoService's interceptos size=4
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG com.jdon.aop.reflection.Pr
oxyMethodInvocation - [JdonFramework] method.getName() :getProductIDsListByCateg
ory
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG com.jdon.aop.AopClient - [
JdonFramework] MethodInvocation will proceed ...
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG com.jdon.aop.interceptor.C
acheInterceptor - [JdonFramework]methodMatchsModelGET: returnClassName = com.jdo
n.controller.model.PageIterator
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG com.jdon.aop.interceptor.P
oolInterceptor - [JdonFramework] enter PoolInterceptor
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG com.jdon.aop.interceptor.P
oolInterceptor - [JdonFramework] borrow a object:com.jdon.framework.samples.jpet
store.service.bo.ProductManagerImp id:17427094 from pool
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG com.jdon.aop.interceptor.P
oolInterceptor - [JdonFramework]pool state: active=1 free=0
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG com.jdon.aop.reflection.Pr
oxyMethodInvocation - [JdonFramework] finish call all inteceptors
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG com.jdon.aop.reflection.Pr
oxyMethodInvocation - [JdonFramework]enter method reflection
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG com.jdon.aop.reflection.Pr
oxyMethodInvocation - [JdonFramework] target:com.jdon.framework.samples.jpetstor
e.service.bo.ProductManagerImp service's method:getProductIDsListByCategory runn
ing..
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG com.jdon.aop.reflection.Pr
oxyMethodInvocation - [JdonFramework] it is pojo target service
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG com.jdon.aop.reflection.Me
thodInvokerUtil - [JdonFramework] method invoke: com.jdon.framework.samples.jpet
store.service.bo.ProductManagerImp method=getProductIDsListByCategory
2007-04-01 13:52:18,531 [http-8080-Processor20] DEBUG com.jdon.framework.samples
.jpetstore.service.bo.ProductManagerImp -  getProductIDsListByCategory
2007-04-01 13:52:18,546 [http-8080-Processor20] ERROR com.jdon.framework.samples
.jpetstore.service.bo.ProductManagerImp -  Dao error : com.ibatis.dao.client.Dao
Exception: Error starting SQL Map transaction.  Cause: java.sql.SQLException: In
valid authorization specification,  message from server: "Access denied for user
 'banq'@'localhost' (using password: YES)"
Caused by: java.sql.SQLException: Invalid authorization specification,  message
from server: "Access denied for user 'banq'@'localhost' (using password: YES)"
2007-04-01 13:52:18,546 [http-8080-Processor20] DEBUG com.jdon.aop.reflection.Me
thodInvokerUtil - [JdonFramework] method invoke successfully
2007-04-01 13:52:18,546 [http-8080-Processor20] DEBUG com.jdon.aop.interceptor.P
oolInterceptor - [JdonFramework] realease a object:com.jdon.framework.samples.jp
etstore.service.bo.ProductManagerImp to pool
2007-04-01 13:52:18,546 [http-8080-Processor20] DEBUG com.jdon.bussinessproxy.dy
ncproxy.DynamicProxyWeaving - [JdonFramework]call method:getProductIDsListByCate
gory finish!
2007-04-01 13:52:18,546 [http-8080-Processor20] DEBUG org.apache.struts.action.E
xceptionHandler - ExceptionHandler caught this exception:
java.lang.Exception: getPageIterator's result is null, check your ModelListActio
n subclass
        at com.jdon.strutsutil.ModelListAction.execute(ModelListAction.java:67)
        at org.apache.struts.action.RequestProcessor.processActionPerform(Reques
tProcessor.java:421)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja
va:226)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:116
4)
        at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:173)
        at com.jdon.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodin
gFilter.java:92)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:214)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:825)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:738)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpo
int.java:526)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFol
lowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:684)
        at java.lang.Thread.run(Thread.java:595)
2007-04-01 13:52:18,546 [http-8080-Processor20] DEBUG org.apache.struts.action.R
equestProcessor - processForwardConfig(ForwardConfig[name=null,path=/common/Erro
r.jsp,redirect=false,contextRelative=false,module=null])
2007-04-01 14:02:02,593 [ContainerBackgroundProcessor[StandardEngine[Catalina]]]
 DEBUG com.jdon.container.visitor.HttpSessionProxyVisitor - [JdonFramework] unva
lueBound active, sessionId :3523A004637D3D889596DC8076494139
2007-04-01 14:02:02,593 [ContainerBackgroundProcessor[StandardEngine[Catalina]]]
 DEBUG com.jdon.container.visitor.HttpSessionProxyVisitor - [JdonFramework] unva
lueUnbound active, componentsboxs size2

posted @ 2007-04-01 14:15 金家寶 阅读(1014) | 评论 (1)编辑 收藏

Java入门知识

       1、jdk就是j2se,jdk1.1.8版本以后改成为j2se,

  下载地址: http://java.sun.com/j2se/downloads.html

  2、jre是java运行时环境(jdk1.3版本以后都包含jre)不用单独下载

  3、设置环境变量
  安装了jdk以后,要配置环境变量
  我的电脑->属性->高级->环境变量
  添加以下环境变量(假定你的java安装在c:\jdk1.3)
  java_home=c:\jdk1.3
  classpath=.;c:\jdk1.3\lib\dt.jar;c:\jdk1.3\lib\tools.jar;(.;已经不能少,因为它代表当前路径)
  path = c:\jdk1.3\bin
  新开一个dos窗口,键入java和javac测试一下

  4、简单测试程序
  代码:--------------------------------
  public class Test{
   public static void main(String args[]){
    System.out.println("Hello world!");
   }
  }
  -------------------------------------
  javac Test.java
  java Test

  5、java、j2ee、xml 开发常用工具介绍
  j2sdk安装程序及Java API Doc
  j2sdk-1_4_0 for win
  j2sdk-1_4_0 for linux
  j2sdk-1_4_0-doc
  j2sdkee-1.3-doc
  可去http://java.sun.com/j2ee/download.html下载

  6、build工具
  ant: Ant是一个基于java的跨平台的build工具。之所以Ant能跨平台,是因为Ant不再需要你编写shell命令,Ant的配置文件是基于XML的任务树,能让你运行各种各样的任务,任务的运
行是由实现了特定任务接口的对象来完成的。
  Http://jakarta.apache.org/ant

  7、开发工具(IDE,集成开发环境)
  1、开发工具首选两种
  1、jbuilder--不用我多说了
  2、netBeans(下载地址www.netbeans.org,免费),forte也就是Sun EE和netbeans类似(估计是使用netbeans的原码改写而成), 但是netbeans(3.
4版本)我觉得比较好用,可以和tomcat和cvs等集成,但是唯一不足的就是不能开发EJB,forte倒是可以,但是不能给出我们自己写的API(也就是.后出现的方法都是系统的,而我们自己写的方法出不来
,faint)
  其它开发工具
  Eclipse:号称未来能进行任何语言开发的IDE集大成者。
  Eclipse 是替代IBM Visual Age for Java(以下简称IVJ)的下一代IDE开发环境,但它未来的目标不仅仅是成为专门开发Java程序的IDE环境,根据Eclipse的体系结
构,通过开发插件,它能扩展到任何语言的开发,甚至能成为图片绘制的工具。
  目前,Eclipse已经开始提供C语言开发的功能插件。更难能可贵的是,Eclipse是一个开放源代码的项目,任何人都可以下载Eclipse的源代码,并且在此基础上开发自己的功能插件。也就是说未来只
要有人需要,就会有建立在Eclipse之上的COBOL,Perl,Python等语言的开发插件出现。
  同时可以通过开发新的插件扩展现有插件的功能,比如在现有的Java开发环境中加入Tomcat服务器插件。
  可以无限扩展,而且有着统一的外观,操作和系统资源管理,这也正是Eclipse的潜力所在。
  Http://www.eclipse.org

  8、专业XML编辑工具
  XMLSPY:支持SOAP;支持Oracle XML Schema扩展;支持MSXML4等等;提供三种XML文档视图:结构显示和编辑,原码视图和支持CSS,XSL的预览。支持最新schema标准,
可以根据schema校验XML文档可以将不同schema版本schema文档转换成符合最新schema规范的文档可以将DTDs, XML-Data, 或者BizTalk schemas 转换成W3C
XML
  Schema从数据库连接(ADO,ODBC)中自动产生XML Schema可以直接访问数据库,提供数据库和XML之间的转换提供类似Office XP compatible的用户界面提供了更方便的用
户界面定制方式.
  该编辑器支持所见即所得的文本编辑,基于form地数据输入,图形元素等,包括了一个图形化的XSLT产生器,可以针对schema或者DTD产生样式文档,最后应用于相应的XML文档。
  可去http://www.xmlspy.com/download.html 下载

  9、Framework
  cocoon:XML Framework
  Cocoon是采用100%纯Java编写的一个内容发布框架。
  Cocoon让你能采用W3C的最新技术(DOM、XML、XSL)来提供Web内容。
  新的Cocoon模式能将文档内容、样式、处理逻辑进行完全的分离,允许这三层能独立地设计、创建和管理, 从而减少了管理开销,加强了工作的重用性,减少了开发时间。
  来源:http://xml.apache.org/cocoon

  9、struts:JSP Framework
  Struts是采用Java Servlet/JavaServer Pages技术,开发Web应用程序的开放源码的framework。
  采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。
  Struts有如下的主要功能:
  ?包含一个controller servlet,能将用户的请求发送到相应的Action对象。
  ?JSP自由tag库,并且在controller servlet中提供关联支持,帮助开发员创建交互式表单应用。
  ?提供了一系列实用对象:XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息。
  来源:http://jakarta.apache.org/struts

  10、turbine:Servlet Framework
  Turbine是基于servlet的framework,使有经验的Java开发员能快速地构建web应用。
  使用Turbine,可以通过创建使用特定服务来处理模板的Screen,
  来集成现有的模板技术(例如Velocity、Webmacro、Java Server Pages(JSP)、FreeMarker、cocoon)。
  来源:http://jakarta.apache.org/turbine

  11、Demo
  Java Pet Store: j2ee应用样例
  Java Pet Store是Java software蓝图规划的j2ee企业应用样例。
  它示范了怎样应用j2ee 平台的威力去构建一个灵活的、可伸展的跨平台企业应用。
  你可从java.sun.com/blueprints/enterprise/上获取最新的信息及学习资料,目前最新的版本是基于j2ee1.3的1.3_01。
  来源:http://java.sun.com/blueprints/enterprise/

  12、database
  pointbase:进军企业级数据库市场的一只新军。
  PointBase 是第一个经过认证的100%纯Java数据库,可用于任何使用的Java 2 标准版虚拟机(JVM)的平台。
  来源:http://www.pointbase.com/

  13、j2ee server
  1、j2sdkee1.3.1 referrence implement(j2ee参考实现),sun的一个很好的学习j2ee的工具,记着,这是一个学习的工具,不是一个企业开发的工具,因为它的效率,安
全等诸多问题,所以不能用它做项目或者产品。
  Http://java.sun.com/j2ee/download.html
  2、weblogic和websphere 不用我多说了吧!
  3、sun one Application Server(前身是iplanet)---强烈推荐
  里面是一个比较完成j2ee开发平台
  1、sun one studio 4 (前身forte)
  2、tomcat 4
  3、sun one application server 一个较棒的j2ee server
  4、和j2ee ri集成
  5、pointbase 是第一个经过认证的100%纯Java数据库
  这些工具可以够你开发任何java产品,最重要的是,它是一个免费的j2ee服务器,并且是免费的哦,比起jboss来说,不知道好到哪里去了哈哈,这下活该我发了!!!
  Http://wwws.sun.com/software/download/app_servers.html

  14、UML工具
  1、Rational Rose 大哥大级别的UML设计工具,功能很强大。
  2、Together 可以认为是最好的java UML设计工具,可以根据类图同步生成java代码,设计完成后,系统的
  框架也出来了,爽啊!

  15、指导书籍
  1、入门书籍就不多介绍了
  看一些《从入门到精通》之类的书籍,《java编程思想》初学者不推荐
  2、java programmer推荐看《java编程思想》
  3、java designer推荐看《java与模式》(新书,中国人写的,不是翻译的,中国人能写出这样有深意的IT书,很难得)



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1523190

posted @ 2007-03-16 23:30 金家寶 阅读(412) | 评论 (2)编辑 收藏

如何从开发人员走向架构师

很多架构师都是从好的开发人员逐步过渡而来的,但并非每个好的开发人员都希望成为架构师,而且他们并不是都适合做架构师。无论您是打算进行职业转型的开发人员,还是寻找能承担体系结构设计责任的合适人选的经理,都务必对此转型过程有个清楚的了解。本文将讨论从实现专家到架构师的过渡过程。

  在寻找优秀的指挥的时候,您首先要找的是一名优秀的音乐演奏家。但并非每个音乐演奏家都能成为优秀的指挥。架构师的专业发展方面也与此类似。越来越多的 IT 组织开始认识到良好软件体系结构的重要性,架构师职业正迅速发展为 IT 内一个独立的门类。由于要从相当小的候选范围内招募架构师,因此这就给管理带来了一些新挑战。即使人力资源部门找到了候选者,针对经验进行的筛选也比其他门类更为严格。跨越这些障碍的最快方式是要认识到,大部分好的架构师同时也是好的开发人员,因此寻找架构师人才时可能首先应该从普通开发人员中找起。招聘人员在对候选者(内部或外部)进行详细审查时,应该考虑这个观点。不过,对此资源进行挑选可能比较麻烦,因为只有极少的优秀开发人员具有成为架构师的特征或愿望。

  本文列出了开发人员成为架构师要进行的工作。我将从可能考虑进行此转型的开发人员和评估进行此转型的开发人员的经理这两个方面来探讨这一问题。我还将提供一系列在做出这些决策时要考虑的因素。

  个人特征

  软件开发团队和管理层之间的联系始终是 IT 中的一个关键所在。二者都倾向于以完全不同的方式考虑给定的问题。大部分相关技术都是讨论项目经理应如何跟踪和解释开发人员的进度和问题。但沟通不足的情况仍然非常普遍,而且这是项目失败的首要原因。好的架构师是解决这个问题的最有效办法。架构师的主要责任是提供开发人员和项目经理之间的共用沟通媒体。他们负责让业务规则及需求与工程实践及限制相适应,以确保成功。以下是成功架构师的一些主要特征。

  愿意并有能力进行沟通:在开发人员中发现架构师的最有价值标准是有效的沟通。您需要技术娴熟、经验丰富的开发人员,这样的人员需要有就项目中的业务相关问题进行沟通的经历。架构师经常必须对理解方面的差距进行预计,然后才能有所贡献。他们必须愿意克服困难来确保技术和业务观点的融合。他们并不必对意见交换工作进行计划和协调;这仍然主要是项目经理的工作。他们的任务是确定表述系统设计时的最佳工具和构件,以促进有效的意见交换。他们必须能够判断当前方法显得不足而需要采用新方法的情况。写作技能也非常重要,还需要具有制作草图的技能或使用制图软件的能力。

  具有处理谈判细节方面的经验:架构师经常需要负责讨论系统开发的技术折衷方案。优先级的冲突可能会带来实践限制、风险规避或可能导致在各个不同业务组之间需求不同。优秀的架构师能够有效地评估技术可能性,并能在不损失项目的主要价值的前提下制订开发计划来处理各种利害关系和限制。这与前面讨论的沟通技能紧密相关,但同时也要体现架构师的技术能力。好的架构师候选者应该是经常帮助对有争议的讨论进行引导的人,能够使讨论得出新的想法,而不会使其在一个位置停滞不前。

  自觉主动;积极解决设计问题:架构师的日常工作目标经常并不明确。很多开发人员直接参考功能规范来列出任务清单。架构师通常则是向这些开发人员提供所需结构的人员,以便尽可能提高工作效率。好的候选者不仅进行沟通方面的工作,而且也会预计各种设计问题并加以解决——通常在没有任何具体指示的情况下自觉进行。无论所分配的职责如何,积极参与项目的开发人员都有机会从一起工作的人员中脱颖而出。

  抽象思维和分析:架构师必须能够理解表述模糊的概念并将其变成相关各方能够理解的项目构件。他们必须能够理解抽象概念,并以具体的语言对其进行沟通。开发人员中好的候选者经常要求或自己主动解释开发生命周期中容易混淆的问题。他们能迅速评估各种想法并将其纳入后续工作的操作建议中。

  开发人员经常具有很强的数学能力,而好的架构师则倾向于表现出更强的口头表达能力。管理人员经常说开发人员具有“工程意识”,而这是一个用于评估架构师的非常有意义的方面。架构师应该具有很强的解决技术问题的能力,但还必须能够准确获知更为全面的人员如何与技术交互的信息。这要求具有某种形式的抽象思维(而不再是代码的细节),这种思维能力可能较难形成。

  有些人认为,某种级别的正式教育是成为优秀开发人员的必备条件之一,我并不同意这种精英论。我遇到了很多高中就辍学的优秀开发人员。不过,对于体系结构设计工作,我的个人经验以及我对所需能力的认识都让我相信,好的架构师通常至少获得了一个有挑战性的学士学位。

  跟踪生命周期

  好的架构师通常有在具备定义良好的软件开发生命周期(Software Development Life Cycle,SDLC)的组织工作的经验。架构师必须理解在其所属专业内最重要的操作过程。这并不意味着需要有其他前提,例如,并不需要高能力成熟度模型(Capability Maturity Model,CMM)级别的工作经验。好的架构师可能来自使用 SDLC 的多个小型迭代的极限编程(Extreme Programming,XP)方法的组织。务必注意各种传统软件开发操作,如 Michael A. Jackson 的方法:Jackson 结构编程(Jackson Structured Programming,JSP)和 Jackson 系统开发(Jackson System Development,JSD)。Jackson 的研究对架构师职业发展的意义就像 Donald Knuth 的研究对程序员一样重要。架构师可以偏爱任何经典的、经过时间考验的软件系统开发方法。

  SDLC 也可以成为评估架构师合适人选的有用机制。每个 SDLC 阶段都具有能提供相关线索的特征。SDLC 包含很多小的变体,但在此部分,我将使用几乎所有方法的公共基础部分。下面的列表详细说明了 SDLC 的各个阶段,并列出了好的架构师候选者在每个阶段表现出来的特征。

  •   分析:在分析期间,好的架构师会考虑非技术影响,以便了解需求和将在其中进行开发的环境。架构师可为风险评估任务带来广泛的软件经验供参考。寻找具有丰富经验的开发人员,以帮助业务部门理解技术人员正确解释需求所需的信息。寻找在开发的早期阶段能够预计可能遇到的问题的开发人员。
  •   设计:在高级设计期间,好的架构师会收集问题空间的各个抽象元素,并就其进行沟通,以便开发团队草拟将要开发的系统的相关图表。架构师负责将需求谨慎地映射到所得到的系统体系结构的功能。在详细设计期间,他们所扮演的角色并不是核心角色,但为了根据整个系统的规则对特定模块的元素进行审查,仍然需要他们。寻找善于让团队能够预计设计决策对最终系统的影响的开发人员。寻找善于确定一些最佳构件来促进与技术和非技术受众沟通设计问题的开发人员。
  •   实现:在实现期间,架构师对项目进行引导,以确保其符合系统体系结构。他们在一线评估技术更改请求,并确定如何对设计进行调整,以最好地处理此类请求。架构师还要密切了解开发人员的进度,特别要跟踪系统中模块间的集成点的状态。寻找经常对讨论进行引导来连接多个子系统的开发人员。寻找项目经理可以依赖其快速地进行与更改和出现的问题相关的风险评估的开发人员。
  •   测试:架构师对系统集成和用户接受度测试进行指导,并负责评估进度的正确沟通的持续测试结果。寻找理解错误模式且善于将测试复查结果转换为行动计划的开发人员。
  •   维护:在维护期间,架构师将发起关于系统集成的讨论。无论处理 IT 基础设施问题,还是确保部门之间的技术合作,架构师都必须完全理解应用程序,必须快速学习姊妹应用程序的体系结构,而且必须就集成点和风险进行有效沟通。寻找具有系统集成经验且表现出快速掌握全貌的能力的开发人员。系统集成是一项独特的任务。

  架构师培养建议

  有些组织能比其他组织更有效地进行架构师培养。如果充分考虑到招聘此类新专业人才的困难,努力促成能鼓励开发人员发展为架构师的环境是非常明智的策略。但务必避免对不愿意或不适合走这条路的开发人员进行处罚。组织应该为开发人员制订多条发展路线,包括那些愿意继续担任开发人员的人。对架构师而言,资深开发人员不可或缺。他们可以实现系统中最关键的模块。通过对其他开发人员进行代码检查和测试支持,他们可帮助确保总体软件质量,而如果质量不能保证,即使最好的体系结构也毫无用处。

  组织应制订个人评估程序,以鼓励开发人员考虑其职业目标,其中要包含体系结构设计的选项。应该鼓励经理在其下属中寻找体系结构设计人才。应该实现指导计划,让架构师与希望成为架构师的开发人员协作工作。应该鼓励开发人员通过参加各种协会、撰写文章和参加会议,从而参与到专业领域中来。通过这样参与进来,可帮助开发人员从新的角度理解系统,并帮助他们更好地就其认识进行沟通。这样还能培养可提高效率的重要创新想法。

  结束语

  开发人员一旦迈出了通向体系结构设计专业方向的第一步,就可以利用很多资源来获得帮助,其中包括很多来自 IBM 的资源。有时候,此过程的最困难的部分就是第一步,而本文提供了一些线索和提示,经理和开发人员可以利用其来评估应该鼓励哪些人努力成为架构师。

声明:文章摘自CSDN

posted @ 2007-03-16 23:23 金家寶 阅读(292) | 评论 (0)编辑 收藏

Java Pet Store Demo 1.3.2中文说明

http://docs.huihoo.com/java/petstore/1.3.2_zh/index.html

Java Pet Store Demo 1.3.2
安装演示版
使用演示版
编译演示版
配置演示版

posted @ 2007-03-09 01:58 金家寶 阅读(506) | 评论 (0)编辑 收藏

仅列出标题
共7页: 上一页 1 2 3 4 5 6 7