From: Andrew J. <aj...@co...> - 2005-12-15 21:35:33
|
Diez- Thanks for the help! After much fiddling around, i found what the problem was. It's bizarre, and i don't understand it, and i hope you could shed some light on this. Quick recap: A extends My.Foo.B which implements My.Foo.C.) with my PyA.py file like this: import My.Foo.B Class PyA(My.Foo.B): etc. it works fine, compiles with "compiling module PyA/ PyA extends My.Foo.B" With my PyA.py file like this: import My.Foo.B import My.Bar.X Class PyA(My.Foo.B): etc. (My.Bar.X is unused in class) It doesn't recognize PyA as an extension to My.Foo.B. Why is this? Why would an unrelated import change whether or not i had validly extended the Java class? thanks, A Diez B. Roggisch wrote: >>Should my "fully qualified classnames" for overridden methods be only >>for the remaining functions defined in interface C? Or should my fully >>qualified classnames be for the implemented methods of interface C? >>i.e., do i need to do >>"""@sig void my.package.name.B.functionName""" >>or >>"""@sig void my.package.name.C.functionName""" >>or some other alternative, because neither of those two seem to be >>working :) >> >> > >That is a misunderstanding. Fully qualified classnames apply to the arguments >of methods that don't belong to java.lang. See the following excerpt for a >working struts action class: > >--------- >from org.apache.struts.action import Action > >import javax.servlet.http.HttpServletRequest >import javax.servlet.http.HttpServletResponse > >import org.apache.log4j.Logger >import org.apache.struts.Globals >import org.apache.struts.action.Action >import org.apache.struts.action.ActionErrors >import org.apache.struts.action.ActionForm >import org.apache.struts.action.ActionForward >import org.apache.struts.action.ActionMapping >import org.apache.struts.config.ActionConfig >import org.apache.struts.config.FormBeanConfig >import org.apache.struts.config.ModuleConfig >import org.apache.struts.util.ModuleUtils >import org.apache.struts.util.RequestUtils > > >class TestCaseRenderer(Action): > def execute(self, mapping, aForm, request, response): > """ @sig public org.apache.struts.action.ActionForward >execute(org.apache.struts.action.ActionMapping mapping, >org.apache.struts.action.ActionForm aForm, >javax.servlet.http.HttpServletRequest request, > javax.servlet.http.HttpServletResponse response) throws Exception > """ > logger = org.apache.log4j.Logger.getLogger("TestCaseRenderer") > sc = self.servlet.servletConfig.servletContext > logger.error(sc.getRealPath("/")) > real_path = sc.getRealPath("/") > action_url = request.contextPath + mapping.path + ACTION_SUFFIX > >---------- > >Interestingly, it seems inheriting from Action instead of >org.apache.struts.action.Action seems to work here. > >HTH, > >Diez > > >------------------------------------------------------- >This SF.net email is sponsored by: Splunk Inc. Do you grep through log files >for problems? Stop! Download the new AJAX search engine that makes >searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! >http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click >_______________________________________________ >Jython-users mailing list >Jyt...@li... >https://lists.sourceforge.net/lists/listinfo/jython-users > > |