On 12/5/06, Tim Azzopardi <[EMAIL PROTECTED]> wrote:
I have been using appfuse 1.9.4 with webwork (and ibatis) and I have just migrated to struts2 (mostly) sucessfully. (File-upload and, i think, dojo are still not working. More details at the end of the post) Below, I've updated Matt's webwork to struts2 migration instructions from this thread http://www.nabble.com/-ANN--AppFuse-1.9.4-Released%21-tf2495476s2369.html#a6957455 My additions are marked in bold Matt Raible-3 wrote: > > > the good news is its pretty easy to upgrade from WebWork to Struts 2. In > my experience, the upgrade is pretty painless, but I have found some > widgets don't work. For example, the datepicker changed from using > jscalendar to dojo's calendar b/c of licensing issues with jscalendar. > There's some sort of conflict b/w dojo's calendar and > script.aculo.us, so you have to remove scriptaculous in order to get > the datepicker to work. In Equinox's Struts 2 option, I manually > added jscalendar instead of using the built-in datepicker. > > 1. Replace the WebWork dependencies with lib/struts-2.0.1 > (http://people.apache.org/builds/struts/2.0.1 - seems to be down ATM). > > 2. Modify properties.xml, build.xml, yourapp.iml and .classpath: find > webwork-2.2.4 and replace with struts 2.0.1. > > 3. Rename web/WEB-INF/classes/xwork.xml to > web/WEB-INF/classes/struts.xml. Change > web/WEB-INF/classes/webwork.properties to > web/WEB-INF/classes/struts.properties. > Finally, edit struts.properties and struts.xml and replace "webwork" with > "struts". > > 4. Find and replace the following package names (make sure and include > XML files): > > com.opensymphony.webwork -> org.apache.struts2 > com.opensymphony.xwork -> com.opensymphony.xwork2 > > 5. In taglibs.jsp and error.jsp, change the WebWork taglib to: > > <%@ taglib uri="/struts-tags" prefix="s" %> > > 6. Find and replace the following in your JSP files: > > <ww: -> <s: > </ww: -> </s: > > 7. In signup.jsp and userForm.jsp, change show="true" to > showPassword="true". > > 8. Modify AppGen templates so <ww: is replaced with <s: and imports are > renamed. > > > 9. Download struts2 and create a directory lib\struts-2.0.1 containing > just > antlr-2.7.2.jar (*if* using hibernate, antlr-2.7.6.jar is already in > lib/hibernate/lib) > freemarker-2.3.4.jar > ognl-2.6.7.jar > struts2-all-2.0.1.jar > struts-core-1.3.5.jar > xwork-2.0-beta-1.jar > Also put the following struts2 jar dependency in lib\jakarta-commons > commons-chain-1.1.jar > > [Note: I don't know if all these jars are strictly necessary] > > 10. In lib.properties change > # > # WebWork - http://www.opensymphony.com/webwork > # > webwork.version=2.2.4 > webwork.dir=${lib.dir}/webwork-${webwork.version} > to > # > # Struts2 > # > struts.version=2.0.1 > struts.dir=${lib.dir}/struts-${struts.version} > > And add the following lines in the "Commons" section > # new for struts2 > commons-chain.jar=${commons.dir}/commons-chain-1.1.jar > > > 11. In build.xml, change > <lib dir="${webwork.dir}" includes="*.jar"/> > to > <lib dir="${struts.dir}" includes="*.jar"/> > > 12. In properties.xml, change TWO occcurences of > <fileset dir="${webwork.dir}" includes="*.jar"/> > to > <fileset dir="${struts.dir}" includes="*.jar"/> > > In the web.compile.classpath add the following line > <pathelement location="${commons-chain.jar}"/> <!-- New for > struts2 --> > > > > AppFuse 2.0 (in the trunk) has Struts 2 integrated, so you could look > at the files there if things don't work properly. > > Hope this helps, > > Matt > What doesn't work yet ===================== Dojo ---- I am trying to do a trivial bit of dojo, that works outside appfuse, but when I try to use it in a jsp, I get the same old ".html is not a valid action error" that has been seen previously: See http://issues.appfuse.org/browse/APF-431 and http://www.nabble.com/Changing-default-extension-from-*.html-to-*.---tf2307780s2369.html#a6415699 [myapp] ERROR [http-80-Processor24] Dispatcher.serviceAction(338) | Could not find action or result There is no Action mapped for action name lib/dojo/src/widget/templates/HtmlButtonTemplate. - [unknown location] at com.opensymphony.xwork2.DefaultActionProxy.<init>(DefaultActionProxy.java :75) at org.apache.struts2.impl.StrutsActionProxy.<init>(StrutsActionProxy.java :18) I should add that I am using my own copy of dojo 0.4 and not the one that is integrated with struts2. File-Upload ----------- "ant test-all" works all the way up to the File-Upload cannoo web test When I access the File-Upload page manually I get java.lang.IllegalArgumentException: The default() is not defined in action class com.myapp.webapp.action.FileUploadAction at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction( DefaultActionInvocation.java:363) Anybody got any suggestions for either problem?
Struts 2 changed the way ! works when used in a URL. With WebWork, using selectFile!default.html called doDefault() in the Action. With Struts 2, it'll call default(). Since default is a keyword, you have to change how this works so it calls start() (or something like that). This is what we're using in AppFuse 2.0. http://fisheye4.cenqua.com/browse/~raw,r=1868/appfuse/trunk/web/struts/src/main/java/org/appfuse/webapp/action/FileUploadAction.java Matt --
View this message in context: http://www.nabble.com/appfuse-1.9.4-webwork-migration-to-struts2-tf2761053s2369.html#a7697800 Sent from the AppFuse - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- http://raibledesigns.com
