Tapestry Training -- From The Source

Let me help you get your team up to speed in Tapestry ... fast. Visit howardlewisship.com for details on training, mentoring and support!

Saturday, October 29, 2005

Even Easier Tapestry Examples

I took up an idea posted on the Tapestry User mailing list and, starting with beta-12, the Tapestry examples will be even simpler to obtain and run.

The new Tapestry examples distribution will be a slice of a JBoss distribution, with the Workbench and Virtual Library deployed into it. Yep, about 99% JBoss and about 1% Tapestry, but it means you can untar the examples distro and execute run.bat or run.sh and have it all up and running in less than a minute.

Once again, the less enlightened will bitch and moan about using JBoss. And once again folks, this is a demo. Everyone has their favorite container and I've gotten annoying flak in the past for not supporting all of them ... as if that was the point. In truth, the point is to get an easy to run demo. Perhaps someday I'll use Geronimo, because it is also an Apache project. But I go a ways back with JBoss, so it was easy for me to build and package, and is a good use of my very scarce time.

There is NO dependency between Tapestry and JBoss. Deploy wherever you want, but if you want a quick turnkey demo, download the demos.

4 comments:

Anonymous said...

Howard, on your post "Reworking Tapestry Docs and Demos" I wrote (maybe too short):
> "Install JBoss 4.0.2"
>
> that kills it all.

With this step:

"untar the examples distro and execute run.bat or run.sh and have it all up and running "

you're on the right track!

My most sincere congratulations, you've now understood what users and potential users want!

Anonymous said...

http://jboss.org/jbossBlog/blog/acoliver/?permalink=Tapestry_on_JBoss.txt

Ian said...

The example webapp seems to be broken at the moment. I'm seeing this stack-trace:

org.apache.hivemind.ApplicationRuntimeException: Unable to construct service tapestry.request.DecodedRequestInjector: Error building service tapestry.request.DecodedRequestInjector: Error at jar:file:/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%205.0/webapps/workbench/WEB-INF/lib/tapestry-4.0.jar!/META-INF/tapestry.request.xml, line 171, column 77: Unable to initialize service tapestry.request.DecodedRequestInjector (by invoking method initializeService on org.apache.tapestry.request.DecodedRequestInjector): Unable to locate class org.apache.tapestry.workbench.RequestDecoder. [jar:file:/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%205.0/webapps/workbench/WEB-INF/lib/tapestry-4.0.jar!/META-INF/tapestry.request.xml, line 170, column 21]
org.apache.hivemind.impl.servicemodel.AbstractServiceModelImpl.constructNewServiceImplementation(AbstractServiceModelImpl.java:165)
org.apache.hivemind.impl.servicemodel.AbstractServiceModelImpl.constructServiceImplementation(AbstractServiceModelImpl.java:139)
org.apache.hivemind.impl.servicemodel.SingletonServiceModel.getActualServiceImplementation(SingletonServiceModel.java:68)
$ServletRequestServicerFilter_108fd69d5fd._service($ServletRequestServicerFilter_108fd69d5fd.java)
$ServletRequestServicerFilter_108fd69d5fd.service($ServletRequestServicerFilter_108fd69d5fd.java)
$ServletRequestServicerFilter_108fd69d5fc.service($ServletRequestServicerFilter_108fd69d5fc.java)
$ServletRequestServicer_108fd69d602.service($ServletRequestServicer_108fd69d602.java)
org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
$ServletRequestServicerFilter_108fd69d5fa.service($ServletRequestServicerFilter_108fd69d5fa.java)
$ServletRequestServicer_108fd69d602.service($ServletRequestServicer_108fd69d602.java)
org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
$ServletRequestServicerFilter_108fd69d5fe.service($ServletRequestServicerFilter_108fd69d5fe.java)
$ServletRequestServicer_108fd69d602.service($ServletRequestServicer_108fd69d602.java)
$ServletRequestServicer_108fd69d5f4.service($ServletRequestServicer_108fd69d5f4.java)
org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:123)
org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:79)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

Ian said...

The example war file seems to be broken at the moment. I'm seeing this:

org.apache.hivemind.ApplicationRuntimeException: Unable to construct service tapestry.request.DecodedRequestInjector: Error building service tapestry.request.DecodedRequestInjector: Error at jar:file:/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%205.0/webapps/workbench/WEB-INF/lib/tapestry-4.0.jar!/META-INF/tapestry.request.xml, line 171, column 77: Unable to initialize service tapestry.request.DecodedRequestInjector (by invoking method initializeService on org.apache.tapestry.request.DecodedRequestInjector): Unable to locate class org.apache.tapestry.workbench.RequestDecoder. [jar:file:/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%205.0/webapps/workbench/WEB-INF/lib/tapestry-4.0.jar!/META-INF/tapestry.request.xml, line 170, column 21]
org.apache.hivemind.impl.servicemodel.AbstractServiceModelImpl.constructNewServiceImplementation(AbstractServiceModelImpl.java:165)
org.apache.hivemind.impl.servicemodel.AbstractServiceModelImpl.constructServiceImplementation(AbstractServiceModelImpl.java:139)
org.apache.hivemind.impl.servicemodel.SingletonServiceModel.getActualServiceImplementation(SingletonServiceModel.java:68)
$ServletRequestServicerFilter_108fd69d5fd._service($ServletRequestServicerFilter_108fd69d5fd.java)
$ServletRequestServicerFilter_108fd69d5fd.service($ServletRequestServicerFilter_108fd69d5fd.java)
$ServletRequestServicerFilter_108fd69d5fc.service($ServletRequestServicerFilter_108fd69d5fc.java)
$ServletRequestServicer_108fd69d602.service($ServletRequestServicer_108fd69d602.java)
org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
$ServletRequestServicerFilter_108fd69d5fa.service($ServletRequestServicerFilter_108fd69d5fa.java)
$ServletRequestServicer_108fd69d602.service($ServletRequestServicer_108fd69d602.java)
org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
$ServletRequestServicerFilter_108fd69d5fe.service($ServletRequestServicerFilter_108fd69d5fe.java)
$ServletRequestServicer_108fd69d602.service($ServletRequestServicer_108fd69d602.java)
$ServletRequestServicer_108fd69d5f4.service($ServletRequestServicer_108fd69d5f4.java)
org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:123)
org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:79)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

Apologies for dumping a stacktrace in your comments. Feel free to delete the comment - once you've fixed it :-p