View Poll Results: If you read it, did you find DirectJNgine User's Guide adequate?
- 54. You may not vote on this poll
23 Jul 2009 1:17 PM #31
I found the solution in this forum:
There is a symlink named rhino.jar in /usr/lib/jvm/java-6-openjdk/jre/lib.
I removed it and now my application works without problems.
I will consider adding the possibility to bypass api files minification...
By the way, can you tell me please something about the release date of the final DirectJNgine 1.0.
26 Jul 2009 8:48 PM #32
Just a quick question: Which files do we need for the installation of Djn in order to make it works?
I mean the minimal files for basic functionalities of Djn, thanks
I'm not very clear to the installation in the user guide, could you please explain it in details? thanks
26 Jul 2009 10:05 PM #33
Ok, after re-reading the user guide several times and try out the demo app. I've figured out something, please correct me if I made any mistakes.
The folders and files we need under our "webContent" folder:
The files we have to configure for our app:
The files which will be auto generated:
Do I miss anything else?
27 Jul 2009 2:18 AM #34
From the User's Guide in the DirectjNgine version under development:
In order to use DirectJNgine in a new application, you will need to add the following JARs to your webapp WEB-INF/lib directory:
• DirectJNgine itself: the file is deliverables/directjngine.xxx.jar, where xxx is the version number, such as 1.0.
• Third party libraries used by DirectJNgine:
- All JARs in the lib directory. Please, *ignore* its subdirectories, we are referring to files in the root directory only.
- All JARs in the lib/runtimeonly directory.
- Important: do NOT add the JARs in lib/compiletimeonly.
Finally, you will need to provide the ExtJs files: due to licensing issues you need to download them separately, and then install them in your web app.
The enclosed demo app might use some other files, but they are not needed in order to use DirectJNgine, and they are not part of it.
Compilation only JARs
In order to compile, you might need the libraries in lib/compiletimeonly or not, depending on how your environment is set up.
This directory contains JAR files the web server will already provide, so you must not add them to your app WEB-INF/lib directory.
While this is from the User's Guide for the next DirectJNgine release, it applies to 1.0 RC1.
With respect to the ApiXXX.js files you mention, they are regenerated as needed, you need not worry about distributing them.
I hope this is clear enough!
27 Jul 2009 5:05 AM #35
Since we are going to use Djn in our existing production developement, do you recommand us to do so?
Currently we are using the DWR+DWRProxy of Extjs, everything works fine except the integration part to the extjs framework.
What I concerning about is, the difference of performance and reliability between DWR and Djn. Would you please give me some suggestions/advices on this?
Again, highly appreciated for your help
27 Jul 2009 8:04 AM #36
First of all, since I am the person behind DirectJNgine, you should take my words with a grain of salt, to say the least...
I think the pieces in the puzzle are as follows:
ExtJs + DWR + DwrProxy as "glue"
ExtJs + Direct (part of ExtJs, but an additional/new piece) + DirectJNgine.
So, maybe the things to consider/compare are:
a) Direct vs. DWR.
As somebody else said in some other thread about, DWR is battle tested and proven, a *big* plus, whereas Direct is not proven yet.
On the other hand, you should probably expect Direct to be better integrated with ExtJs, as it is part of the product.
This means you will have focused support: things such as being able to use a Direct function to load a Store data,conventions to return field validation errors to forms from a Direct method, etc.
With DWR, you will probably find yourself missing these little pieces of "glue" code time and again, and you will probably have to write them on your own. But you should check the ExtJs forums for this kind of glue.
I hope that Direct will pass the test of time, as ExtJs has done -a good indicator. In fact, since I implemented the DirectJNgine Java router, it is clear I have some faith in it :-)
And I don't think Direct will vanish, from my point of view it was a missing piece in ExtJs, communication with the backend is a friction point.
But, again, we have to see how things evolve.
b) DwrProxy vs. DirectJNgine
On a first look, these are probably the candidates to be the "weak link" in the chain...
I can't comment on DwrProxy, as I haven't used it. I don't know its scope (does it cover the same ground?), how it is used or any other detail.
As with Direct, DirectJNgine is not battle tested yet, and you have to decide whether you trust it based on external indicators due to the lack of a track record: things such as existence of automated tests, quantity and quality of documentation and demos, opinions in forums, etc.
Of course, I've done my best to make DirectJNgine robust and reliable, and have implemented it as if it were one of the commercial projects I implement/manage.
That's why I emphasized so much automated testing (I developed the testing infrastructure as the first step), demos and documentation: they force you to focus.
I think high quality can't be obtained without focus -but you certainly can get low quality even if you think you are focused.
Just my thoughts...
As you can see, I am optimistic both about Direct and DirectJNgine :-)
I hope other people comment on this. I know of at least one person that has used DWR + DwrProxy and is giving a try to Direct + DirectJNgine and is very active in these forums.
And maybe the person behind DwrProxy can provide more info on DwrProxy itself and his experiences with DWR.
27 Jul 2009 8:21 PM #37
Thanks again Pedro,
After setting up the Djn environment to my new eclipse project, I got the following errors during the server start.
The error messages from the tomcat console:
SEVERE: StandardWrapper.Throwable com.softwarementors.extjs.djn.servlet.ServletConfigurationException: Unable to find class 'com.labci.ckwui.djn.demo.ChartCbStore' at com.softwarementors.extjs.djn.servlet.ServletConfigurationException.forClassNotFound(Unknown Source) at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.getClasses(Unknown Source) at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.createApiConfiguration(Unknown Source) at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.createApiConfigurations(Unknown Source) at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.createDirectJNgineRouter(Unknown Source) at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.init(Unknown Source) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4364) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:578) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) Caused by: java.lang.ClassNotFoundException: com.labci.ckwui.djn.demo.ChartCbStore at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1360) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) ... 22 more
<!-- DirectJNgine servlet --> <servlet> <servlet-name>DjnServlet</servlet-name> <servlet-class> com.softwarementors.extjs.djn.servlet.DirectJNgineServlet </servlet-class> <init-param> <param-name>providersUrl</param-name> <param-value>djn/directprovider</param-value> </init-param> <load-on-startup>1</load-on-startup> <init-param> <param-name>apis</param-name> <param-value> test, demo </param-value> </init-param> <init-param> <param-name>demo.apiFile</param-name> <param-value>js/portal/Api.js</param-value> </init-param> <init-param> <param-name>demo.namespace</param-name> <param-value>Ext.app</param-value> </init-param> <init-param> <param-name>demo.classes</param-name> <param-value> com.labci.ckwui.djn.demo.ChartCbStore </param-value> </init-param> <init-param> <param-name>test.apiFile</param-name> <param-value>js/portal/DjnDemo.js</param-value> </init-param> <init-param> <param-name>test.namespace</param-name> <param-value>DjnTestApi</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>DjnServlet</servlet-name> <url-pattern>/djn/directprovider/*</url-pattern> </servlet-mapping>
The JARs in my lib:
commons-fileupload-1.2.1.jar commons-io-1.3.2.jar directjngine.1.0.RC1.jar gson-1.3.jar jargs-1.0.jar log4j-1.2.15.jar rhino-1.6R7.jar yuicompressor-2.4.2.jar
27 Jul 2009 8:56 PM #38
Finally I figured out that the default build path of eclipse is "project/build/classes", it seems that Djn does not refer to this build path.
After I copied the complied classes to the "webContent/WEB-INF/classes", everything works fines.
So the conclusion is, Djn is looking for the .war environment, not the eclipse's dev. environment.
Please correct me if I made mistakes of that.
27 Jul 2009 10:22 PM #39
Djn assumes nothing about where the classes are: if the JRE can find them, Djn can find them. Of course, Djn uses the environment in which it is running, the web app.
You can get Eclipse to put your compiled classes in your "webContent/WEB-INF/classes" directory: menu "Project|Options", choose "Java Build path", then go to "Source" tab, and set "Default output folder" to point to the directory.
This is all related to how Eclipse and a web app work. You should probably look for additional info on configuring and debugging web app projects in Eclipse forums.
27 Jul 2009 11:38 PM #40