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:

  1. Anonymous4:02 AM

    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!

    ReplyDelete
  2. Anonymous5:20 AM

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

    ReplyDelete
  3. 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)

    ReplyDelete
  4. 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

    ReplyDelete

Please note that this is not a support forum for Tapestry. Requests for help will be deleted. Please subscribe to the Tapestry user mailing list if you are in need of support, or contact me directly for professional (for pay) support.

Spammers: Don't bother. I delete your comments and it's a waste of time for both of us. 垃圾邮件发送者:不要打扰。我删除您的评论和它的时间对我们双方的浪费