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.

As for DJN 1.0 RC1, there are NO javascript files to redistribute. The js files you see in the demo app are used and supported *only* in the demo application.

That said, the final release will add some utility javascript files, and the User's Guide will explain when and how to use them. But they will be utilities, not mandatory.

...

With respect to the ApiXXX.js files you mention, they are regenerated as needed, you need not worry about distributing them.

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.

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:

Code:

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

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.

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.

yea I know these things as well, I just notice that Djn is working for running environment only.

thanks anyway, it works very well and seems to be a good replacement of DWR. (ofcoz I still have to test its performance in UAT)