Everything Java Apache Geospatial Open Source. Hello Shinning Stars!!! Vincent Massol, Raphael Luta, Santiago Gala, Carsten Z.

Thursday, February 03, 2005

This is quite a long exception. The cause is included and the problem is clear.


java.sql.SQLException: Table not found: DECISION_ITEM in statement [select decisionit0_.ID as ID, decisionit0_.class as class, decisionit0_.ROOT_ITEM as ROOT_ITEM, decisionit0_.YES_SUCCESSOR_FK as YES_SUCC4_, decisionit0_.NO_SUCCESSOR_FK as NO_SUCCE5_, decisionit0_.NAME as NAME, decisionit0_.PROMPT_STRING as PROMPT_S7_ from DECISION_ITEM decisionit0_ where (decisionit0_.ROOT_ITEM=true )]
at org.hsqldb.jdbc.jdbcUtil.throwError(Unknown Source)
at org.hsqldb.jdbc.jdbcPreparedStatement.(Unknown Source)
at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.prepareStatement(BaseWrapperManagedConnection.java:355)
at org.jboss.resource.adapter.jdbc.WrappedConnection.prepareStatement(WrappedConnection.java:205)
at net.sf.hibernate.impl.BatcherImpl.getPreparedStatement(BatcherImpl.java:257)
at net.sf.hibernate.impl.BatcherImpl.getPreparedStatement(BatcherImpl.java:232)
at net.sf.hibernate.impl.BatcherImpl.prepareQueryStatement(BatcherImpl.java:65)
at net.sf.hibernate.loader.Loader.prepareQueryStatement(Loader.java:779)
at net.sf.hibernate.loader.Loader.doQuery(Loader.java:265)
at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:133)
at net.sf.hibernate.loader.Loader.doList(Loader.java:1033)
at net.sf.hibernate.loader.Loader.list(Loader.java:1024)
at net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java:854)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1544)
at net.sf.hibernate.impl.QueryImpl.list(QueryImpl.java:39)
at org.andromda.samples.animalquiz.decisiontree.DecisionItemFactory.findRoot(DecisionItemFactory.java:43)
at org.andromda.samples.animalquiz.decisiontree.DecisionServiceBeanImpl.handleGetFirstQuestion(DecisionServiceBeanImpl.java:17)
at org.andromda.samples.animalquiz.decisiontree.DecisionServiceBean.getFirstQuestion(DecisionServiceBean.java:56)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.invocation.Invocation.performCall(Invocation.java:345)
at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:214)
at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185)
at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:113)
at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:105)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:313)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:146)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:122)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624)
at org.jboss.ejb.Container.invoke(Container.java:856)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:144)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:155)
at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:104)
at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:90)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:55)
at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:97)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:86)
at $Proxy122.getFirstQuestion(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:384)
at org.apache.axis.providers.java.EJBProvider.invokeMethod(EJBProvider.java:459)
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:281)
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:319)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:450)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:285)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:653)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:301)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:66)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:54)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:595)
00:42:24,330 ERROR [LogInterceptor] EJBException in method: public abstract org.andromda.samples.animalquiz.decisiontree.VODecisionItem org.andromda.samples.animalquiz.decisiontree.DecisionService.getFirstQuestion() throws org.andromda.samples.animalquiz.decisiontree.DecisionException,java.rmi.RemoteException:
javax.ejb.EJBException: DecisionServiceBean.getFirstQuestion: javax.ejb.EJBException: null; CausedByException is:
Could not execute query
at org.andromda.samples.animalquiz.decisiontree.DecisionServiceBean.getFirstQuestion(DecisionServiceBean.java:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.invocation.Invocation.performCall(Invocation.java:345)
at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:214)
at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185)
at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:113)
at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:105)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:313)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:146)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:122)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624)
at org.jboss.ejb.Container.invoke(Container.java:856)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:144)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:155)
at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:104)
at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:90)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:55)
at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:97)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:86)
at $Proxy122.getFirstQuestion(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:384)
at org.apache.axis.providers.java.EJBProvider.invokeMethod(EJBProvider.java:459)
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:281)
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:319)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:450)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:285)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:653)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:301)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:66)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:54)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:595)

Monday, January 10, 2005

RESUME - PHILIP MARK DONAGHY - Professional consultant for the following (open source) technologies. PostgreSQL MySQL Oracle and IBM DB2 DBMS. Apache AXIS Geronimo LDAP Samba and Tomcat servers. GML JDOM JAXP SAX and XERCES XML specifications. AndroMDA Velocity and XDoclet code generators. Linux Solaris and Win OS. Struts MVC II design pattern. JSP Struts Tiles Struts Validator and DisplayTag presentation layers. J2EE EJB JDBC JMS JMX JNDI JSSE JSTL JTA JTX Java Thread Java beans Java IO Java Lang Java Net Java RMI Java Security Java SQL Java Text Java Util Javax Naming Javax SQL Javax XML w3c DOM XML SAX and JavaMail Java 2 SDK APIs. J2SDK Ant Maven Eclipse JBuilder Log4J Apache Jakarta Commons Clay DBCP Taglibs DisplayTag Easy Struts Lomboz Oxygen and CVS development platforms. ArcIMS GRASS PostGIS and MapServer GIS. OpenSSL SSH SSL HTTP SOAP and DNS BIND protocols. I use object-oriented analysis & design (OOAD), l'Unified Modeling Language (UML), Enterprise JavaBeans (EJBs), JavaServer Pages (JSPs), Java Server Faces (JSFs), Data Access Objects (DAOs). I support open source and the Java Community Process (JCP).

159 rue du Fbg Poissonniàre
75009 Paris France
Tel. : +33 (0)1 48 74 23 80
Mobile : +33 (0)6 20 83 22 62
Email : philipmarkdonaghy 0 yahoo 0 com
Website : donaghy.blogspot.com
Born the 8th of August 1972
Married
Nationality : American
French Resident
( working permit )

EDUCATION

1996. San Diego State University. Bachelors of Science in General Geology and Bachelors of Science in Computer Science.

LANGUAGES

English : Mother tongue
French : Read, written, and spoken

PROFESSIONAL EXPERIENCE

May 2004. GISIG. Paris (75). Apache Architect

  • Responsabilities

    • Produce an Apache compile farm

  • Application Functionalities

    • Compile Ant 1.6.1, Junit 3.8.1, MX4J 2.0.1, Apache Commons Lang

  • Technolgies

    • Linux 2.4.20, CVS 1.11.2

October 2003 to April 2004. Acadomia. Alten SI. Paris (75). Web Application Architect.

  • Responsabilities

    • Establish a framework for a mission critical web application

    • Define a security mechanism for user authentification and authorization

    • Determine the data acess requirements and create a code generator from JDBC connection which provides acces to a persitant data layer

    • Separate the data access layer from the business logic layer and the java bean and presentation layers

    • Establish an error mechanism using the Java exception technology

    • Train eight engineers to use the Struts actions, form beans, validator, tiles, and controller technologies

    • Assure the sychronisation of data using web services

    • Integrate common paging and tab panes tag libraries into the presentation layer

  • Application Functionalities

    • Intranet used for the managment of the Acadomia organisation and their client database

    • User interfaces permiting the creation of agencies, families, students, and tutors

    • Application controled security customized using the application back office administrator

  • References

February 2003 to September 2003. AirportSmart. Alten SI. LGS France. IBM Global Services. Paris (92). Web Application Architect.

  • Responsabilities

    • Responsable for the architecture and development of a intranet whos space is dedicated to buyers and suppliers of the airport industry.

    • Perform system administration for developer, preproduction, and production servers.

    • Install and configure Linux, Samba, Apache, Tomcat, IBM DB2, J2SDK, Struts, Ant, JBuilder, Log4J, OpenSSL, LDAP, PHP, CVS, JNDI, JDBC, JavaMail, TagLibs (JSTL), Apache Commons, Tiles, Velocity templates, Email Servers.

    • Train and provide assistance to eight other engineers.

    • The application is executed using multiple servers installed with the Linux Red Hat distribution.

    • The servers use the Java 2 Enterprise Platform to communicate between data sources most of which are based on Open Source products. LDAP Secureway and IBM DB2

  • Application Functionalities

    • The functionalities of the web application are supported in any language.

    • Internationalization is at the core of the application, which includes graphical interfaces for activating new languages, and for translating data.

  • References

December 2002 to May 2003. ATEC. Cachan (94). Project Manager Internet.

  • Responsabilities

    • Produce a web application for an office of Construction Economists.

  • References

August 2001 to July 2002. Egencia. Paris, France. Lead Java Developer.

  • Responsabilities

    • Development of travel portal using Java technology.

    • Responsible for implementing J2EE ( Java 2 Platform Enterprise Edition ) architecture on n-tier heterogeneous platform.

    • Creation and design of Web tier using JavaBeans constructed from Data Access Objects ( DAO ).

    • Data sources include XML ( Extensible Markup Language ), Oracle, and HTTP protocol over SSL using the Java Secure Socket Extension ( JSSE ).

    • Integrated platform with the SNCF Train Reservation System for Online Travel Agencies ( RAVEL, Système de Réservation SNCF pour les Agences de Voyages En Ligne ), the KIX XML API for KDS Wave Server, and Business Objects.

  • References

January 2001 to August 2001. MapImage. Paris, France. Internet Application Developer.

  • Responsabilities

    • Development of Web portal software using Java technology.

    • Responsible for designing and writing a Web application using Servlet technology on Internet Information Server ( IIS ) platform.

    • Utilisation of MS Java SDK and virtual machine.

  • References

June 2000 to January 2001. ESRI France. Meudon, France. Development Engineer.

  • Responsabilities

    • Development of GIS ( Geographic Information Systems ) project in the field of wireless telecommunications.

    • Responsible for developing a Web client to ArcIMS ( Arc Internet Map Server ) for a leading telecommunications company.

    • Product destinated for French Justice Department for use in criminal investigations notably for the positioning of mobile phone calls.

    • Designed a multi user environment used to display cartography based on dates, phone numbers, and/or locations.

    • Developed search engine tool to assist user in the research.

    • Developed reporting tool to log usage.

  • References

    • http://www.esrifrance.fr

June 1998 to April 2000. ESRI Inc. Redlands, CA, USA. Software Release Manager.

  • Responsabilities

    • Development of automated test suites for GIS software package called ArcIMS ( Arc Internet Map Server ).

    • Tests were written in Java and JavaScript to send multiple requests to the ArcIMS clients and servers to perform load, api, and regression tests.

    • Responsible for the quality of the software release for the Sun Solaris platform.

January 1996 to March 1998. Scripps Institution of Oceanography. San Diego, CA, USA. Research Assistant.

  • Responsabilities

    • Studying the climate of the San Francisco Bay area. Development of real-time weather website and tools to forecast weather based on statistics. Performed analysis of weather patterns using Matlab mathematical application. Graphs and models where created by developing programs using Matlab scripting language.

SKILLS

Knowledge of diverse IT systems and programming methods.
Research : Scientific Method, Mineralogy, Petrology, Structural Geology, Oceanography and Statistics
Programming : Java, JavaScript, C, C++, SQL, HTML, ASP, JSP, Taglibs, UNIX : bash, sh, csh, ksh, perl, php
Technologies : Tomcat, Struts, Servlet, JSP, XML, DTD, XSLT, JASP, EJB, JavaBeans, JavaMail, JDBC, JSSE, MVC, JDOM, Taglibs, TLD, NetBeans, Linux
Web Servers : Apache, IIS, iPlanet.

ArcIMS 3.0 Knowledge and Experience

Client, Middleware, and Server Architecture.
AXL Communication between components.
Administration of Map Services and multiple machine configurations.
Customization using HTML client and Servlet Connector.
Design and development of the test harness for the Java Viewer API.
Development of a debug and trace tool for the ArcIMS Viewers.
Configuration of the Cold Fusion Connector.
Experience developing custom AXL requests.

Developement Tools

Eight years experience using Sun Microsystems Java Development Kit
Five years experience using JBuilder for Java development.
Four years experience using Cold Fusion Studio/Server for HTML development.
Two years experience using Oracle 8, Toad, and sqlplus.
Six months experience using IBM DB2 datastore.
Six months experience using MS SQLServer.

Open Source Software Development for Service Oriented Projects

By Philip Mark Donaghy

There is no doubt that Open Source methods are becoming the norm used by service agencies everywhere. These are the guidelines I recommend when developing using open source software. These principals will guarantee an effective development process.

Communication with Mailing Lists

A large percentage of projects fail due to poor communications. It is very important that communication is traced so that managers, developers, and clients can have the correct information at the right time.

The solution to this problem :

Use internal mailing lists to notify people of news, events and or changes that are important to the end users as well as managers, clients, and developers. Three lists should be sufficient. The client list, a developers list, and a managers list. In addition the use of public mailing lists to effectively monitor software limitations and benefits.

Modeled Architecture using UML, Object, Exchange, and Database models

Problems arise from ineffectively copying and pasting source code.

The solution to this problem :

Use models to define the architecture of the application. Model driven architecture is the most modern method of developing service oriented software. A large portion of the application can be automatically generated using Velocity or AndroMDA.

Client Workflow

A third difficulty comes from poor client specifications. The solution is to monitor the clients needs and expectations.

The solution to this problem :

Architects and developers can not effectively create service oriented applications without the technical and functional contacts with the client.

Developer Workflow

Developers are curious animals. The all have their habits and methods of contributing to a project. The most important characteristics necessary to identify a responsible developer are his or her "bonne volonté", the desire to contribute ones maximum potential toward a projects success, and his or her professional attitude. These aside, here are some simple steps all developers should follow.

  • Verify the stability of the source code

  • Notify project directors when source code is unstable

  • Debug

  • Find the person responsible for the error

  • Work with them to estimate the

  • Run regression tests

  • Notify project directors when regression tests fail

  • Debug

  • Find the person responsible for the error

  • Work with them to estimate the correction

  • Evaluate remaining development

  • Meet with project directors to discuss solutions

Language

The software documentation must use a consistent language.

The solution to this problem :

A development team often consists of many nationalities. In such a case documentation communication should be written in English.

French can be the dominant language if the clients, managers, and staff are all French nationals or master French as a second language.

Development Platforms

A final and frequent problem arises with the network services used during the development process and the cost to maintain them.

The solution to this problem :

The development platform must be composed of all elements to run the application independently of network connections. Therefore the database must be installed on the development machine. Traditional Windows machines are not practical, secure or fast enough for this scenario therefore Linux is recommended.

Source Control

Problems arise when source code is locked by other developers.

The solution to this problem :

Use the most common open source source control. At the time of this writing this is CVS, although Subversion has be recently adopted by most new and cutting edge development efforts.

Build Scripts

Problems arise when build scripts are platform dependent.

The solution to this problem :

Use the most common open source build system. At the time of this writing this is Ant, although Maven is making great strides.

As with development build scripts should modular. Meaning that one central build script calls other scripts.

Delays

Delays can be avoided only by synchronizing the efforts made by the client, managers, third parties, and developers. In order to master the planning of a project all the technical, functional, and management aspects must be mastered. At our company we strive to make this our mission. Our contracts describe the exact solution and its implementation along with the time to delivery and the cost.

Wednesday, December 22, 2004

Friday, November 05, 2004

Cenqua Clover Code Coverage for Java is used to test the Junit tests coverage of the source code. See the report on the Geronimo system.
Index of Geronimo modules

Thursday, November 04, 2004

Four essential Software development support systems :

Wiki/Blog/CMS/Forum/Documentation system.
Source code repository.
Bugtracking system.
Mailinglist server system.
Most interesting search phrase for temporal database implementations.
Powerful Flashback Query is used in Oracle 10g for obtaining older versions of data.

Wednesday, November 03, 2004

#!/bin/bash

# This script can be executed by root to rapidly create a cvs repository on RedHat Linux 8 or later. Author: Philip Mark Donaghy
# Adapted from http://www7b.software.ibm.com/wsdd/library/techarticles/0209_yu/yu.html Article by Colin Yu


# The user cvs and the Users required to have access to cvs.
useradd cvs
useradd -G cvs penguin
useradd -G cvs tiger


# CVS environment
mkdir /home/cvs/anoncvs
chmod -R 770 /home/cvs
chown -R cvs /home/cvs
chgrp -R cvs /home/cvs
chmod g+s /home/cvs/anoncvs
cvs -d /home/cvs/anoncvs init

# Daemon process. CVS Service
printf "# default : off\n# description : A cvs server.\nservice cvspserver\n{\n disable = no\n socket_type = stream\n protocol = tcp\n user = root\n wait = no\n server = /usr/bin/cvs\n server_args = -f --allow-root=/home/cvs/anoncvs pserver\n log_on_success += USERID\n log_on_failure += USERID\n}\n" > /etc/xinetd.d/cvspserver
service xinetd restart


# Users environment for localhost
printf "export CVSROOT=\":pserver:\$USER@localhost:/home/cvs/anoncvs\"\n" >> /etc/profile


# Manual configuration
# User the following command to initialize a project
# cvs import -m "New Project" ProjectName group release1_0
How can a database model implement versioning of data? Flags perhaps, though not the best solution. Meta data seems to be the key. Each table maintains the following meta data. DATE_CREATED, DATE_CANCELLED, DATE_UPDATED, DATE_EXPORTED, DATE_VALIDATED (The last two implement export functions telling us when data was exported and when this data was validated by some authority), DATE_START, DATE_END (Dates that indicate a period during which the date is valid).

Inserting a version :

DATE_CANCELLED is initialized to the end of time for us that is the 31st of December 9999.
DATE_CREATED and DATE_UPDATED are set to SYSTIME
DATE_EXPORTED, DATE_VALIDATED is initialized to the beginning of time for us that is the 1st of January 1972.

Deleting versions set DATE_CANCELLED and DATE_UPDATED to the system time.

Senario 1 : (DCR, DCA, DUP, DEX, DVA, DST, DEN are abriviations for the above meta data)

t0 t1 t2 t3 t4 t5 t6
|------------------------------------------------> Version one was inserted at time t1, so version one has the following values.

DCR, DCA, DUP, DEX, DVA, DST, DEN
t1, te, t1, tb, tb, t0, t6

Tuesday, October 12, 2004

If you are responsable for the product, then master at all times what a developer is doing.
Edit MyBlog

Friday, September 24, 2004

The xsi:type attribute of a complexType implies that the complexType has been extended to contain new properties. See Doing More With XML Schemas (part 1): "xsi:type"
This article recommends naming(typing) all xsd:complexTypes maximizing the ability to reuse the type. Doing More With XML Schemas (part 1)
Major flaws in software can be related to file location and syntax validation. Which is why XML was created.

Tuesday, September 21, 2004

I have been looking for cvs firewall and I just found it.
Access cvs using http proxy.
CVS from behind a firewall.
Of all places I found this on msdn.

http://blogs.msdn.com/robmen/archive/2004/08/09/211126.aspx

Monday, September 20, 2004

My successful use of CVSGrab :

%CVSGRAB_HOME%\cvsgrab -rootUrl http://cvs.apache.org/viewcvs.cgi -packagePath xml-xmlbeans -destDir . -prune true -proxyHost 201.3.3.35 -proxyPort 8080 -proxyUser FR999925 -proxyPassword "lopign@"

Thursday, August 05, 2004

The Comparable inteface requires that the compareTo(Object) method is implemented.
The difference between a Statement and a PreparedStatement is that the PreparedStatement is precompiled, therefore faster.

Monday, August 02, 2004

Thursday, July 29, 2004

XML Data Binding Resources - A resource archive of xml binding tools.

Thursday, July 22, 2004

HowTo get the most out of open source database mapping tools. Which one should I choose? Castor, Hibernate, Ojb, Torque.

Tuesday, July 06, 2004

Up until now I am putting in practice XMLBeans, Ojb, and Castor. Let's just say I like diversity. So from the bottom up it would be described this way. We have a database schema which I need to represent in xml. So I use Ojb 1.0.0 ReverseDB tool (org.apache.ojb.tools.mapping.reversedb.Main in the db-ojb-1.0.0-tools.jar) to create a xml and all the JavaBeans that I need for Castor. This xml is very nice, it describes all the tables, columns, primary and foreign keys, relations, collections that exist in our database schema. This will help me when using Castor.

I need a mapping file for Castor so I wrote a small xslt to convert my database xml into a mapping xml. Here it is :

<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning the key-generator="SEQ" has to be added manually to mapping.xml -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<mapping>
<key-generator name="SEQUENCE" alias="SEQ">
<param name="sequence" value="seq_id"/>
</key-generator>
<xsl:apply-templates/>
</mapping>
</xsl:template>
<xsl:template match="class-descriptor">
<xsl:if test="field-descriptor[@primarykey='true']">
<class>
<xsl:attribute name="identity"><xsl:for-each select="field-descriptor[@primarykey='true']"><xsl:value-of select="concat(@name, ' ')"/></xsl:for-each></xsl:attribute>
<xsl:attribute name="name"><xsl:value-of select="concat('db.finaixm.', @class)"/></xsl:attribute>
<map-to>
<xsl:attribute name="table"><xsl:value-of select="@table"/></xsl:attribute>
</map-to>
<xsl:apply-templates/>
</class>
</xsl:if>
</xsl:template>
<xsl:template match="field-descriptor">
<field>
<xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
<xsl:attribute name="type"><xsl:choose><xsl:when test="@jdbc-type = 'DECIMAL'">long</xsl:when><xsl:when test="@jdbc-type = 'VARCHAR'">string</xsl:when><xsl:when test="@jdbc-type = 'TIMESTAMP'">timestamp</xsl:when></xsl:choose></xsl:attribute>
<sql>
<xsl:attribute name="name"><xsl:value-of select="@column"/></xsl:attribute>
</sql>
</field>
</xsl:template>
</xsl:stylesheet>

Here is a quick Ant task to run it,

<target name="finaixm-mapping">
<echo>Building Castor mapping file</echo>
<xslt style="xslt/oracle2mapping.xslt" in="oracle.xml" out="etc/mapping.xml" />
</target>

I also want to manipulate xml files that conform to a given xml schema. So I use XMLBeans to read the schema and create a parser and custom API for the given schema. Practical! So I've got JavaBeans on both sides, all I need to do now is apply business logic to some Velocity templates that can import xml to the database and export from the database to xml. Thanks to the Open Source community.

Friday, July 02, 2004

Hierarchial database inserts can be made using Castor. The difficulty becomes creating the hierachial object.
An interesting trend is to see Open Source binaries distributed with the code source CVS tree. Velocity 1.4 is an example.

Wednesday, June 16, 2004

This is my patch for my bug.

modules/core/src/java/org/openejb/deployment/OpenEJBModuleBuilder.java
TransactionPolicyHelper transactionPolicyHelper = new TransactionPolicyHelper(ejbJar.getAssemblyDescriptor());

modules/core/src/java/org/openejb/deployment/TransactionPolicyHelper.java
public TransactionPolicyHelper(AssemblyDescriptorType assemblyDescriptor) {
if (assemblyDescriptor != null) {
processContainerTransactions(assemblyDescriptor.getContainerTransactionArray());
}
}

public TransactionPolicyHelper(ContainerTransactionType[] containerTransactions) {
processContainerTransactions(containerTransactions);
}

private void processContainerTransactions(ContainerTransactionType[] containerTransactions) {
for (int i = 0; i < containerTransactions.length; i++) {
ContainerTransactionType containerTransaction = containerTransactions[i];
String transactionAttribute = containerTransaction.getTransAttribute().getStringValue();
MethodType[] methods = containerTransaction.getMethodArray();
for (int j = 0; j < methods.length; j++) {
MethodType method = methods[j];
String ejbName = method.getEjbName().getStringValue();
MethodTransaction methodTransaction = new MethodTransaction(method, transactionAttribute);
putMethodTransaction(ejbName, methodTransaction);
}
}
}
Keep an eye on the Overview (Geronimo :: System 1.0-SNAPSHOT API)
ejbJar : <xml-fragment version="2.1" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:j2ee="http://java.sun.com/xml/ns/j2ee">
<j2ee:display-name>ConverterJAR</j2ee:display-name>
<j2ee:enterprise-beans>
<j2ee:session>
<j2ee:ejb-name>ConverterBean</j2ee:ejb-name>
<j2ee:home>converter.ConverterHome</j2ee:home>
<j2ee:remote>converter.Converter</j2ee:remote>
<j2ee:ejb-class>converter.ConverterBean</j2ee:ejb-class>
<j2ee:session-type>Stateless</j2ee:session-type>
<j2ee:transaction-type>Bean</j2ee:transaction-type>
<j2ee:security-identity>
<j2ee:use-caller-identity/>
</j2ee:security-identity>
</j2ee:session>
</j2ee:enterprise-beans>
</xml-fragment>
java.lang.NullPointerException
at org.openejb.deployment.OpenEJBModuleBuilder.addGBeans(OpenEJBModuleBuilder.java:426)
at org.openejb.deployment.OpenEJBModuleBuilder$$FastClassByCGLIB$$11bd7b20.invoke()
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:87)
at org.apache.geronimo.gbean.jmx.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
at org.apache.geronimo.gbean.jmx.GBeanMBeanOperation.invoke(GBeanMBeanOperation.java:141)
at org.apache.geronimo.gbean.jmx.GBeanMBean.invoke(GBeanMBean.java:740)
at org.apache.geronimo.gbean.jmx.RawInvoker.invoke(RawInvoker.java:89)
at org.apache.geronimo.gbean.jmx.RawOperationInvoker.invoke(RawOperationInvoker.java:34)
at org.apache.geronimo.gbean.jmx.CGLibMethodInterceptor.intercept(CGLibMethodInterceptor.java:110)
at org.apache.geronimo.j2ee.deployment.ModuleBuilder$$EnhancerByCGLIB$$9e45a280.addGBeans()
at org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:225)
at org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:148)
at org.apache.geronimo.j2ee.deployment.EARConfigBuilder$$FastClassByCGLIB$$38e56ec6.invoke()
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:87)
at org.apache.geronimo.gbean.jmx.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
at org.apache.geronimo.gbean.jmx.GBeanMBeanOperation.invoke(GBeanMBeanOperation.java:141)
at org.apache.geronimo.gbean.jmx.GBeanMBean.invoke(GBeanMBean.java:740)
at org.apache.geronimo.gbean.jmx.RawInvoker.invoke(RawInvoker.java:89)
at org.apache.geronimo.gbean.jmx.RawOperationInvoker.invoke(RawOperationInvoker.java:34)
at org.apache.geronimo.gbean.jmx.CGLibMethodInterceptor.intercept(CGLibMethodInterceptor.java:110)
at org.apache.geronimo.deployment.ConfigurationBuilder$$EnhancerByCGLIB$$7a1ca0ae.buildConfiguration()
at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:132)
at org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB$$734a235d.invoke()
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:87)
at org.apache.geronimo.gbean.jmx.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
at org.apache.geronimo.gbean.jmx.GBeanMBeanOperation.invoke(GBeanMBeanOperation.java:141)
at org.apache.geronimo.gbean.jmx.GBeanMBean.invoke(GBeanMBean.java:761)
at mx4j.server.interceptor.InvokerMBeanServerInterceptor.invoke(InvokerMBeanServerInterceptor.java:218)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121)
at mx4j.server.interceptor.SecurityMBeanServerInterceptor.invoke(SecurityMBeanServerInterceptor.java:86)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121)
at mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor.invoke(ContextClassLoaderMBeanServerInterceptor.java:205)
at mx4j.server.MX4JMBeanServer.invoke(MX4JMBeanServer.java:1079)
at org.apache.geronimo.kernel.Kernel.invoke(Kernel.java:231)
at org.apache.geronimo.system.main.CommandLine.main(CommandLine.java:82)

Seems to be that this bug is due to the fact that the builder is looking for the assembly-descriptor element. This element is optional according xml schema descriptor file http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd


Friday, June 11, 2004

java.lang.NullPointerException
at org.openejb.deployment.OpenEJBModuleBuilder.addGBeans(OpenEJBModuleBuilder.java:409)
at org.openejb.deployment.OpenEJBModuleBuilder$$FastClassByCGLIB$$11bd7b20.invoke()
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:87)
at org.apache.geronimo.gbean.jmx.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
at org.apache.geronimo.gbean.jmx.GBeanMBeanOperation.invoke(GBeanMBeanOperation.java:141)
at org.apache.geronimo.gbean.jmx.GBeanMBean.invoke(GBeanMBean.java:740)
at org.apache.geronimo.gbean.jmx.RawInvoker.invoke(RawInvoker.java:89)
at org.apache.geronimo.gbean.jmx.RawOperationInvoker.invoke(RawOperationInvoker.java:34)
at org.apache.geronimo.gbean.jmx.CGLibMethodInterceptor.intercept(CGLibMethodInterceptor.java:110)
at org.apache.geronimo.j2ee.deployment.ModuleBuilder$$EnhancerByCGLIB$$9e45a280.addGBeans()
at org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:209)
at org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:142)
at org.apache.geronimo.j2ee.deployment.EARConfigBuilder$$FastClassByCGLIB$$38e56ec6.invoke()
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:87)
at org.apache.geronimo.gbean.jmx.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
at org.apache.geronimo.gbean.jmx.GBeanMBeanOperation.invoke(GBeanMBeanOperation.java:141)
at org.apache.geronimo.gbean.jmx.GBeanMBean.invoke(GBeanMBean.java:740)
at org.apache.geronimo.gbean.jmx.RawInvoker.invoke(RawInvoker.java:89)
at org.apache.geronimo.gbean.jmx.RawOperationInvoker.invoke(RawOperationInvoker.java:34)
at org.apache.geronimo.gbean.jmx.CGLibMethodInterceptor.intercept(CGLibMethodInterceptor.java:110)
at org.apache.geronimo.deployment.ConfigurationBuilder$$EnhancerByCGLIB$$7a1ca0ae.buildConfiguration()
at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:132)
at org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB$$734a235d.invoke()
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:87)
at org.apache.geronimo.gbean.jmx.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
at org.apache.geronimo.gbean.jmx.GBeanMBeanOperation.invoke(GBeanMBeanOperation.java:141)
at org.apache.geronimo.gbean.jmx.GBeanMBean.invoke(GBeanMBean.java:761)
at mx4j.server.interceptor.InvokerMBeanServerInterceptor.invoke(InvokerMBeanServerInterceptor.java:218)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121)
at mx4j.server.interceptor.SecurityMBeanServerInterceptor.invoke(SecurityMBeanServerInterceptor.java:86)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121)
at mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor.invoke(ContextClassLoaderMBeanServerInterceptor.java:205)
at mx4j.server.MX4JMBeanServer.invoke(MX4JMBeanServer.java:1079)
at org.apache.geronimo.kernel.Kernel.invoke(Kernel.java:231)
at org.apache.geronimo.system.main.CommandLine.main(CommandLine.java:82)

Thursday, June 10, 2004

How does the demo application work?
Check out Cactus, Clover.

I just had the idea to write a Getting Started guide to Geronimo.
Trying this in Geronimo :

java -jar bin/server.jar org/apache/geronimo/Demo

TIP : Before building Geronimo modify the file modules/assembly/src/plan/system-plan.xml changing INFO to DEBUG. This will tell Log4j to output debug statements.

Friday, June 04, 2004

gisig.com cvs coordinates :

:pserver:gisig.com:/home/cvs/anoncvs
I am trying to get the hang of this so that I can finnish the TutorialHowTo ... Google Search: openejb geronimo

Thursday, May 27, 2004

Edit MyBlog
This is what can happen if you don't use JMX...

21-May-2004 15:06:10 org.apache.tomcat.util.threads.ThreadPool logFull
SEVERE: All threads are busy, waiting. Please increase maxThreads or check the servlet status75 75

Tuesday, May 18, 2004

==== Build the Example ====

cd j2eetutorial14/examples/jaxrpc/helloservice
ant

Ant reports that the BUILD FAILED but if the compile-service task passed we will be ok

==== Create a Web Application ====

Use the web application created in HowToAxisGeronimo but name the directory MyHelloService.
cp -R build/helloservice MyHelloService/WEB-INF/classes/

==== Create the geronimo-jetty.xml ====


xmlns="http://geronimo.apache.org/xml/ns/web/jetty"
configId="your/domain/name/j2eetutorialhelloservice"
parentId="org/apache/geronimo/Server"
>
/hello-jaxrpc
false


==== Create the WAR File ====

cd MyHelloService
jar -cf ../MyHelloService.war *

==== Deploy the WAR File ====

cd incubator-geronimo/target
java -jar bin/deployer.jar --install --module MyHelloService.war

==== Start the Server ====

java -jar bin/server.jar your/domain/name/j2eetutorialhelloservice

==== Test the Web Application ====

http://localhost:8080/hello-jaxrpc gives you some links to check out.

==== Create the file MyHelloService/WEB-INF/deploy.wsdd ====







==== Deploy the Web Service ====

Executing the Axis client as shown here.

cd MyHelloService/WEB-INF
java -cp $AXISCLASSPATH org.apache.axis.client.AdminClient -l local://localhost:8080/hello-jaxrpc/servlet/AdminServlet deploy.wsdd
Processing file deploy.wsdd
Done processing

==== Repackage the WAR File ====

The WEB-INF directory now includes the file server-config.xml which requires redeployment.

cd ..
jar -cf ../MyHelloService.war *

==== Stop the Server ====

Ctrl-C

==== Redeploy the WAR File ====

cd incubator-geronimo/target
java -jar bin/deployer.jar --install --module MyHelloService.war

==== Restart the Server ====

java -jar bin/server.jar your/domain/name/j2eetutorialhelloservice

==== Test the Web Service Endpoint ====

http://gisig.com:8080/hello-jaxrpc/servlet/AxisServlet should now show the hello web service.
http://localhost:8080/hello-jaxrpc/services/hello?WSDL shows you the WSDL for the hello service.

==== Use the Tutorial Clients ====

The J2EE Tutorial comes with a number of clients that use this web service.

==== Use Axis WSDL2Java to Generate a Client ===

Friday, May 14, 2004

Google Search: Linux is a new page dedicated to searching for Linux resources.

Thursday, May 13, 2004

[#GERONIMO-175] Web to EJB security integration - ASF JIRA. Another security issue that is a high priority.
This problem may be resolved or related to the Object Relational Bridge project. [#GERONIMO-176] CMP table mapping support - ASF JIRA
Security bugs are critical issues for Geronimo. Example : [#GERONIMO-178] Support for security roles in ejb-jar.xml - ASF JIRA
Transactions, a notion used by container managed persitence (CMP), must be isolated. This Geronimo issue is important for EJB certification. [#GERONIMO-181] Transaction propogation accross calls to stateful session beans - ASF JIRA

Wednesday, May 12, 2004

== Axis 1.2 Web Application Installation ==

Before continuing with HowToTutorial we must install and test the Axis web application within Geronimo.

Download the Axis binaries. We are using 1.2 beta

cd $AXIS_HOME/webapps/axis

Create a geronimo-jetty.xml, our's looks like this,


xmlns="http://geronimo.apache.org/xml/ns/web/jetty"
configId="org/apache/axis/webapp"
parentId="org/apache/geronimo/Server"
>
/axis
false


Modify the web.xml so that Jetty is happy. Working version below,


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
Apache-Axis


org.apache.axis.transport.http.AxisHTTPSessionListener



AxisServlet

org.apache.axis.transport.http.AxisServlet




AdminServlet

org.apache.axis.transport.http.AdminServlet

100



SOAPMonitorService

org.apache.axis.monitor.SOAPMonitorService


SOAPMonitorPort
5001

100



AxisServlet
/servlet/AxisServlet



AxisServlet
*.jws



AxisServlet
/services/*



SOAPMonitorService
/SOAPMonitor







5




wsdl
text/xml




xsd
text/xml



index.html
index.jsp
index.jws




Add the additional jars required by Axis. Our axis/WEB-INF/lib looks like this,

activation.jar
axis-ant.jar
axis.jar
commons-discovery.jar
commons-logging.jar
jaxrpc.jar
log4j-1.2.8.jar
mail.jar
saaj.jar
wsdl4j.jar
xmlsec.jar

Note : See also the tag dependancy for an alternative way of using libraries.

Create a the axis.war

jar -cf ../axis.war *

Deploy the war

cd incubator-geronimo/target

java -jar bin/deployer.jar --install --module axis.war

Start the Geronimo server

java -jar bin/server.jar org/apache/axis/webapp

http://localhost:8080/axis/happyaxis.jsp should report total bliss.

More information is available at the root of the context, http://gisig.com:8080/axis/
=== Helloservice ===

You can use the asant and deployer tools provided with Sun's application server or follow the quick steps below. The Axis binaries must also be installed on your machine.

Create the MyHelloService.war as described in the tutorial Chapter 8: Building Web Services with JAX-RPC. Section 2: Creating a Simple Web Service and Client with JAX-RPC.

Quick steps :

cd examples/jaxrpc/helloservice

ant build

Ant says BUILD FAILED but we will do some stuff manually

mkdir -p war/WEB-INF/lib

cp -R build war/WEB-INF/classes

cp $AXIS_HOME/lib/*jar war/WEB-INF/lib

cat > war/WEB-INF/web.xml
Ctrl-D

cat > war/WEB-INF/geronimo-jetty.xml
Ctrl-D

Monday, May 10, 2004

J2EE Tutorial 1.4 Creating a Simple Web Service and Client with JAX-RPC

My Son is the cutest.

Thursday, May 06, 2004

A tutorial/HOWTO. Using Geronimo with the Sun J2EE tutorial and Geronimo DEV. Sun J2EE Tutorial version 1.4




Download the tutorials and examples in the same bundle. The file name should be j2ee-1_4-doc-tutorial_1.zip.

Extract the file.

cd j2eetutorial14/example/web/hello1

ant

cd build/WEB-INF

Create the file geronimo-jetty.xml

cd ..

jar -cf j2eehello1.war *

cd incubator-geronimo/target

java -jar bin/deployer.jar --install --module j2eehello1.war

I had a small problem here...

org.apache.geronimo.deployment.DeploymentException: Unable to parse web.xml
at org.apache.geronimo.jetty.deployment.WARConfigBuilder.buildConfiguration(WARConfigBuilder.java:214)
at org.apache.geronimo.jetty.deployment.WARConfigBuilder.buildConfiguration(WARConfigBuilder.java:128)
at org.apache.geronimo.jetty.deployment.WARConfigBuilder$$FastClassByCGLIB$$ee905b6a.invoke()
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:87)
at org.apache.geronimo.gbean.jmx.FastMethodInvoker.invoke(FastMethodInvoker.java:40)
at org.apache.geronimo.gbean.jmx.GBeanMBeanOperation.invoke(GBeanMBeanOperation.java:153)
at org.apache.geronimo.gbean.jmx.GBeanMBean.invoke(GBeanMBean.java:465)
at mx4j.server.interceptor.InvokerMBeanServerInterceptor.invoke(InvokerMBeanServerInterceptor.java:218)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121)
at mx4j.server.interceptor.SecurityMBeanServerInterceptor.invoke(SecurityMBeanServerInterceptor.java:86)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121)
at mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor.invoke(ContextClassLoaderMBeanServerInterceptor.java:205)
at mx4j.server.MX4JMBeanServer.invoke(MX4JMBeanServer.java:1079)
at org.apache.geronimo.kernel.jmx.InvokeMBean.invoke(InvokeMBean.java:100)
at org.apache.geronimo.gbean.jmx.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:125)
at org.apache.geronimo.deployment.ConfigurationBuilder$$EnhancerByCGLIB$$7a1ca0ae.buildConfiguration()
at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:132)
at org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB$$734a235d.invoke()
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:87)
at org.apache.geronimo.gbean.jmx.FastMethodInvoker.invoke(FastMethodInvoker.java:40)
at org.apache.geronimo.gbean.jmx.GBeanMBeanOperation.invoke(GBeanMBeanOperation.java:153)
at org.apache.geronimo.gbean.jmx.GBeanMBean.invoke(GBeanMBean.java:465)
at mx4j.server.interceptor.InvokerMBeanServerInterceptor.invoke(InvokerMBeanServerInterceptor.java:218)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121)
at mx4j.server.interceptor.SecurityMBeanServerInterceptor.invoke(SecurityMBeanServerInterceptor.java:86)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121)
at mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor.invoke(ContextClassLoaderMBeanServerInterceptor.java:205)
at mx4j.server.MX4JMBeanServer.invoke(MX4JMBeanServer.java:1079)
at org.apache.geronimo.kernel.Kernel.invoke(Kernel.java:216)
at org.apache.geronimo.system.main.CommandLine.main(CommandLine.java:82)

Hmm...

WARConfigBuilder.java Line 214 : WebAppDocument doc = (WebAppDocument) XmlBeansUtil.parse(new BufferedInputStream(is), WebAppDocument.type);

Hmm...
org.apache.xmlbeans.SchemaTypeLoader.parse(InputStream, SchemaType, XmlOptions)

Hmm...

Modified the hello1/build/WEB-INF/web.xml using the incubator-geronimo/target/config-store/5/war/WEB-INF/web.xml (remove servlet config)

java -jar bin/deployer.jar --install --module ../../../j2eetutorial14/examples/web/hello1/build/j2eehello1.war

Solved the problem...Success!

java -jar bin/server.jar your/domain/Example/test

http://localhost:8080/j2eehello1/

HTTP ERROR: 500 The+absolute+uri%3A+http%3A%2F%2Fjava%2Esun%2Ecom%2Fjsp%2Fjstl%2Fcore+cannot+be+resolved+in+either+web%2Exml+or+the+jar+files+deployed+with+this+application
RequestURI=/j2eehello1/

Powered by Jetty://

Hmm...

17:37:14,380 WARN [ServletHandler] Exception for /j2eehello1/
org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:94)
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:404)
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:154)
at org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:358)
at org.apache.jasper.compiler.TagLibraryInfoImpl.(TagLibraryInfoImpl.java:190)
at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:458)
at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:523)
at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1577)
at org.apache.jasper.compiler.Parser.parse(Parser.java:171)
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:247)
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:149)
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:135)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:237)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:456)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:552)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:291)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:362)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:477)
at org.mortbay.jetty.servlet.Dispatcher.dispatch(Dispatcher.java:227)
at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:147)
at org.mortbay.jetty.servlet.Default.handleGet(Default.java:306)
at org.mortbay.jetty.servlet.Default.service(Default.java:221)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:362)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:477)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:488)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1754)
at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:565)
at org.apache.geronimo.jetty.JettyWebApplicationContext.handle(JettyWebApplicationContext.java:164)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1706)
at org.mortbay.http.HttpServer.service(HttpServer.java:879)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:817)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:979)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:834)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:212)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:315)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:498)

JSP Error

18:24:10,991 ERROR [Compiler] Javac exception
Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK
at org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory.getCompiler(CompilerAdapterFactory.java:139)
at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:833)
at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:682)
at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:390)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:458)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:552)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:291)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:362)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:477)
at org.mortbay.jetty.servlet.Dispatcher.dispatch(Dispatcher.java:227)
at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:147)
at org.mortbay.jetty.servlet.Default.handleGet(Default.java:306)
at org.mortbay.jetty.servlet.Default.service(Default.java:221)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:362)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:477)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:488)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1754)
at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:565)
at org.apache.geronimo.jetty.JettyWebApplicationContext.handle(JettyWebApplicationContext.java:164)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1706)
at org.mortbay.http.HttpServer.service(HttpServer.java:879)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:817)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:979)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:834)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:212)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:315)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:498)
18:24:11,004 ERROR [Compiler] Env: Compile: javaFileName=/tmp/Jetty_0_0_0_0_8080__j2eehello1//org/apache/jsp/index_jsp.java
classpath=/tmp/Jetty_0_0_0_0_8080__j2eehello1:/usr/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar:/usr/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar:/usr/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar:/usr/j2sdk1.4.2_01/jre/lib/ext/localedata.jar:/home/phil/source/CVSCheckOut/incubator-geronimo/target/bin/server.jar:/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/geronimo-spec/jars/geronimo-spec-j2ee-1.4-rc1.jar:/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/geronimo/jars/geronimo-j2ee-1.0-SNAPSHOT.jar:/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/geronimo/jars/geronimo-core-1.0-SNAPSHOT.jar:/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/geronimo/jars/geronimo-connector-1.0-SNAPSHOT.jar:/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/concurrent/jars/concurrent-1.3.2.jar:/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/geronimo/jars/geronimo-transaction-1.0-SNAPSHOT.jar:/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/geronimo/jars/geronimo-naming-1.0-SNAPSHOT.jar:/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/geronimo/jars/geronimo-security-1.0-SNAPSHOT.jar:/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/tranql/jars/tranql-1.0-SNAPSHOT.jar:/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/openejb/jars/openejb-core-2.0-SNAPSHOT.jar:/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/geronimo/jars/geronimo-jetty-1.0-SNAPSHOT.jar:/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/jetty/jars/org.mortbay.jetty-5.0.beta0.jar:/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/tomcat/jars/jasper-compiler-5.0.16.jar:/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/tomcat/jars/jasper-runtime-5.0.16.jar:/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/commons-el/jars/commons-el-1.0.jar:/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/ant/jars/ant-1.5.jar:/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/activemq/jars/activemq-1.0-SNAPSHOT.jar:/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/regexp/jars/regexp-1.3.jar:bin/server.jar
cp=bin/server.jar
cp=/tmp/Jetty_0_0_0_0_8080__j2eehello1
cp=/usr/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar
cp=/usr/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar
cp=/usr/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar
cp=/usr/j2sdk1.4.2_01/jre/lib/ext/localedata.jar
cp=/home/phil/source/CVSCheckOut/incubator-geronimo/target/bin/server.jar
cp=/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/geronimo-spec/jars/geronimo-spec-j2ee-1.4-rc1.jar
cp=/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/geronimo/jars/geronimo-j2ee-1.0-SNAPSHOT.jar
cp=/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/geronimo/jars/geronimo-core-1.0-SNAPSHOT.jar
cp=/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/geronimo/jars/geronimo-connector-1.0-SNAPSHOT.jar
cp=/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/concurrent/jars/concurrent-1.3.2.jar
cp=/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/geronimo/jars/geronimo-transaction-1.0-SNAPSHOT.jar
cp=/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/geronimo/jars/geronimo-naming-1.0-SNAPSHOT.jar
cp=/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/geronimo/jars/geronimo-security-1.0-SNAPSHOT.jar
cp=/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/tranql/jars/tranql-1.0-SNAPSHOT.jar
cp=/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/openejb/jars/openejb-core-2.0-SNAPSHOT.jar
cp=/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/geronimo/jars/geronimo-jetty-1.0-SNAPSHOT.jar
cp=/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/jetty/jars/org.mortbay.jetty-5.0.beta0.jar
cp=/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/tomcat/jars/jasper-compiler-5.0.16.jar
cp=/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/tomcat/jars/jasper-runtime-5.0.16.jar
cp=/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/commons-el/jars/commons-el-1.0.jar
cp=/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/ant/jars/ant-1.5.jar
cp=/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/activemq/jars/activemq-1.0-SNAPSHOT.jar
cp=/home/phil/source/CVSCheckOut/incubator-geronimo/target/repository/regexp/jars/regexp-1.3.jar
cp=bin/server.jar
work dir=/tmp/Jetty_0_0_0_0_8080__j2eehello1
extension dir=/usr/j2sdk1.4.2_01/jre/lib/ext
srcDir=/tmp/Jetty_0_0_0_0_8080__j2eehello1
include=org/apache/jsp/index_jsp.java

18:24:11,006 ERROR [Compiler] Error compiling file: /tmp/Jetty_0_0_0_0_8080__j2eehello1//org/apache/jsp/index_jsp.java [javac] Compiling 1 source file


18:24:11,014 WARN [ServletHandler] Exception for /j2eehello1/
org.apache.jasper.JasperException: Unable to compile class for JSP

No Java compiler was found to compile the generated source for the JSP.
This can usually be solved by copying manually $JAVA_HOME/lib/tools.jar from the JDK
to the common/lib directory of the Tomcat server, followed by a Tomcat restart.
If using an alternate Java compiler, please check its installation and access path.

at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:127)
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:351)
at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:415)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:458)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:552)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:291)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:362)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:477)
at org.mortbay.jetty.servlet.Dispatcher.dispatch(Dispatcher.java:227)
at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:147)
at org.mortbay.jetty.servlet.Default.handleGet(Default.java:306)
at org.mortbay.jetty.servlet.Default.service(Default.java:221)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:362)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:477)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:488)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1754)
at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:565)
at org.apache.geronimo.jetty.JettyWebApplicationContext.handle(JettyWebApplicationContext.java:164)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1706)
at org.mortbay.http.HttpServer.service(HttpServer.java:879)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:817)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:979)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:834)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:212)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:315)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:498)


The most important features of the J2EE tutorial are the examples about security, authorisation, authentification, and web services.

Wednesday, May 05, 2004

J2EE v1.4 Downloads page will provide you with what you need to test Geronimo. Download the J2EE 1.4 SDK Samples (includes petstore). And Tutorial which includes samples.
Deployment - Apache Geronimo Wiki describes the deployment process used to configure applications of type Web Application, EJB Application, Resource Adapter, EAR, and Services.
Advantages of Geronimo - A repository of available jar dependancies, an XML dependancy configuration.
Missing in Geronimo - Remoting Layer for live deployment.
J2EE Tutorials and Code Camps seems to be the obvious place to learn about j2ee.
This pdf document explains the collaboration between ObjectWeb and the Apache Foundation surrounding the Geronimo project. A breif history of each organisation is included.
Apache Geronimo: Apache Initiates open source J2EE project contains the open letter from Apache and will give you a long discusion about Apache Geronimo.
J2EE Update Sparks Tool Debate may show you the direction of Java Application Servers.
Apache Announces J2EE Project
Apache targets August 6, 2004 as the release date for Geronimo
XML schemas & j2ee deployment
Maven notes : project.xml and maven.xml are the principal configuration files. The main project.xml file can include others by using the <extend>${basedir}/etc/project.xml</extend> tag as done by geronimo.

Tuesday, May 04, 2004

This is my first try using the Jakarta Commons SQL



import org.apache.commons.sql.model.*;
import org.apache.commons.sql.io.*;
import org.apache.commons.sql.builder.*;
import java.io.*;
public class Try001 {
public static void main(String[] args) throws Exception {
DatabaseReader reader = new DatabaseReader();
Database database = (Database) reader.parse("datamodel.xml");
PostgreSqlBuilder psb = new PostgreSqlBuilder();
Writer writer = new FileWriter("datamodel.sql");
psb.setWriter(writer);
psb.createDatabase(database);
writer.close();
}
}

Completly satisfied by the resulting output, a sql script to create a database from the datamodel.xml file.

I just found the Jakarta Commons Combo project which jars the most common components from the project into on jar (commons-combo.jar)

The errors that I am encountering are here.


Jakarta Commons Pool



test:
[echo] Because we need to sleep to test the eviction threads, this takes a little while (around 35 seconds)...
[java] Exception in thread "main" java.lang.NoClassDefFoundError: junit/textui/TestRunner

Jakarta Commons Cli



[junit] Testcase: testBasicUsage took 0.123 sec
[junit] Caused an ERROR
[junit] null
[junit] java.lang.NullPointerException
[junit] at org.apache.commons.cli2.resource.ResourceHelper.getMessage(ResourceHelper.java:173)
[junit] at org.apache.commons.cli2.resource.ResourceHelper.getMessage(ResourceHelper.java:109)
[junit] at org.apache.commons.cli2.OptionException.(OptionException.java:83)
[junit] at org.apache.commons.cli2.commandline.Parser.parse(Parser.java:69)
[junit] at org.apache.commons.cli2.commandline.Parser.parseAndHelp(Parser.java:93)
[junit] at org.apache.commons.cli2.DocumentationTest.testBasicUsage(DocumentationTest.java:127)







I am building a compile farm for ant 1.6.1, junit 3.8.1, mx4j 2.0.1, Jakarta Commons Lang 2.0 Collections 3.1 Net 1.3.0 beanutils 1.7


I had trouble with jakarta commons net which was resolved by using the latest ant distribution and linking the ant/lib/junit.jar to the compiled jar junit/junit3.8.1/junit.jar


I noticed that some build scripts download and configure jars and others depend on the CLASSPATH, the convention seems to be default to CLASSPATH and if there is time create the get-deps target with optional nodeps property enabled using a directive to ant (-Dbuild.sysclasspath=only)

Edit MyBlog