Assalam Alikom In this post, I'll try to explain the steps I took to host Tapestry5.1 on google app engine. First of all here is my application . A very good place to start is here . This page will help you know what will, won't or will partially work on Google app engine. Now straight to tapestry5.1 stuff .. 1)AppModule.java public class AppModule { public static void contributeApplicationDefaults(MappedConfiguration config) { config.add(SymbolConstants.PRODUCTION_MODE, "false"); // This mainly affects how exceptions are reported, I'm not sure - and I don't think - its vital to host tapestry on GAE. config.add("tapestry.thread-pool-enabled", "false"); //Now this is a must !, GAE restriction. config.add(SymbolConstants.APPLICATION_VERSION, "0.1"); // This is to override the random number generated by tapestry in assets paths } } 2)There as a compatibility issue between tapestry5 and GAE, that's wh
The idea behind this annotation is nice and very simple. It's all about telling tapestry how to hypothetically convert a string to an object of your choice. This string is actually a key used to look up a desired object. Now to do that you need to provide tapestry with your value encoder implementation then go ahead and use the @PageActivationContext annotation. First create a value encoder service : package com.skycomm.cth.services.encoders; import org.apache.tapestry5.ValueEncoder; import org.apache.tapestry5.services.ValueEncoderFactory; import com.jarmy.beans.UserInfo; import com.jarmy.services.dao.UserDAO; public class UserInfoEncoder implements ValueEncoder , ValueEncoderFactory { private final UserDAO userDao; public UserInfoEncoder(UserDAO userDao) { this.userDao = userDao; } @Override public ValueEncoder create(Class paramClass) { return this; } @Override public String toClient(UserInfo paramV) { return par
This post gives half the answer I needed to test SOAP services . The other half of the answer was to override the default Content-Type HTTP header added by pingdom (Check the 11th point in the Optional Parameters section). To override the header, just add one with a blank space. This worked for me and may be for you too. Also another thing I had to do while testing web services developed using Apache Axis (I don't know which version), is that I had to specify a SOAPAction header with the value "" (The value is 2 double quotes, not an empty value) Generally, you need successfully send a POST request to the service and find out what HEADER you are missing (i.e. to add it) or adding (i.e. to remove it). You can use SOAP UI to do that. But SOAP UI doesn't show sent HEADER by default, so you'll need to download TCPMon (Which records and displays communications), start it, and let it proxy connections on a specific port, then configure SOAP UI to use that po
Comments
Post a Comment