Marc,

Indeed, after a few hours of headache I've found that two of our deploy 
processes were mixed up together!

Thanks,
Gunter D'Hondt





Marc Portier <[EMAIL PROTECTED]> 
09/03/2006 08:23
Please respond to
users@cocoon.apache.org


To
users@cocoon.apache.org
cc

Subject
Re: map:call function






from the book (javadoc)
> java.lang.LinkageError
> 
> Subclasses of LinkageError indicate that a class has some dependency on 
another class; however, the latter class has incompatibly changed after 
the compilation of the former class.

So clearly it has to be some variant of a not-clean-build, so you need
to check your build/deploy/test strategy.

I'ld suggest removing references to any of the cocoon 1-4 jars and do a
clean rebuild of your complete project, chances are you do have some
lingering calls/references in there to the old stuff...

You might want to check your deployment process as well, maybe newer
versions of your jars aren't uploaded to the test-environment, or
they're not overwriting/removing the old ones and name/version-numbers
are putting them behind the old ones in the classpath (so you still have
the old ones loaded)

One way to detect this last issue is by calling
classloader.getResource("be/sofico/MyApple.class") and see from which
jar your class gets loaded...

Maybe also compare checksums on those jar-files ensuring it's in sync
with the version you've just been cleanly-rebuilding..

regards,
-marc=


Gunter D'Hondt wrote:
> Anybody an idea of my problem below?? I've already tried several things 
> but I'm out of ideas now and this is blocking our upgrade from 2.1.4 to 
> 2.1.8
> 
> Thanks in advance!
> Gunter D'Hondt
> 
> 
> 
> 
> 
> 
> Gunter D'Hondt <[EMAIL PROTECTED]> 
> 23/02/2006 14:37
> Please respond to
> users@cocoon.apache.org
> 
> 
> To
> users@cocoon.apache.org
> cc
> 
> Subject
> Re: map:call function
> 
> 
> 
> 
> 
> 
> apparently the call function does work but when instantiating my apple 
it 
> gets a java.lang.LinkageError:
> 
> I've adjusted the 
> org.apache.cocoon.components.flow.apples.ApplesProcessor:
>     private AppleController instantiateController(String className)
>         throws Exception {
> 
>         // TODO think about dynamic reloading of these beasts in future
>         // classloading stuf et al.
> 
>         if (getLogger().isDebugEnabled())
>             getLogger().debug("ApplesProcessor->instantiateController() 
- 
> className='"+className+"'");
> 
>                 try {
>                 Class clazz = Class.forName(className);
>                 Object o = clazz.newInstance();
>                 return (AppleController) o;
>                 }
>                 catch (LinkageError e)
>                 {
>                 if (getLogger().isDebugEnabled())
>  getLogger().debug("ApplesProcessor->instantiateController() - 
> LinkageError msg="+e.getMessage());
>                 }
>                 return null;
>     }
> 
> 
> this generates the following logging;
> (2006-02-23) 14:19.15:296 ApplesProcessor: 
ApplesProcessor->callFunction() 
> 
> - className='be.sofico.MyApple'
> (2006-02-23) 14:19.15:296 ApplesProcessor: 
> ApplesProcessor->instantiateController() - className='be.sofico.MyApple'
> (2006-02-23) 14:19.15:312 ApplesProcessor: 
> ApplesProcessor->instantiateController() - LinkageError 
> msg=org/apache/cocoon/woody/formmodel/Widget
> 
> so it must be something inside the class MyApple that incorrectly links 
to 
> 
> the old Woody Widget class but looking at the import of my class this 
> should not be possible:
> 
> import org.apache.cocoon.ProcessingException;
> import org.apache.cocoon.i18n.I18nUtils;
> import org.apache.cocoon.components.flow.apples.AppleController;
> import org.apache.cocoon.components.flow.apples.AppleRequest;
> import org.apache.cocoon.components.flow.apples.AppleResponse;
> import org.apache.cocoon.environment.Session;
> import org.apache.cocoon.forms.FormContext;
> import org.apache.cocoon.forms.FormManager;
> import org.apache.cocoon.forms.binding.Binding;
> import org.apache.cocoon.forms.binding.BindingManager;
> import org.apache.cocoon.forms.event.FormHandler;
> import org.apache.cocoon.forms.formmodel.Form;
> I've recompiled all the classes correctly; I'm assuming that I don't 
need 
> the deprecated woody-block to run the cforms-block ???
> 
> Pls, any help is welcome,
> 
> Regards,
> Gunter D'Hondt
> 
> 
> 
> 
> 
> 
> 
> 
> Gunter D'Hondt <[EMAIL PROTECTED]> 
> 22/02/2006 15:47
> Please respond to
> users@cocoon.apache.org
> 
> 
> To
> users@cocoon.apache.org
> cc
> 
> Subject
> map:call function
> 
> 
> 
> 
> 
> 
> I'm currently upgrading from 2.1.4 to 2.1.8 and converted all Woody 
stuff 
> to CForms stuff but when calling the following sitemap snippet I'm 
getting 
> 
> 
> the error below.
> 
> sitemap snippet:
>       <map:flow language="apples"/>
>  ...
>       <map:match pattern="welcomepage">
>         <map:call function="be.sofico.myApple">
>         ...
>         </map:call>
>       </map:match>
> 
> the stacktrace snippet:
> java.lang.NoClassDefFoundError: org/apache/cocoon/woody/formmodel/Widget
>                  at java.lang.Class.forName0(Native Method)
>                  at java.lang.Class.forName(Class.java:141)
>                  at 
> 
org.apache.cocoon.components.flow.apples.ApplesProcessor.instantiateController(ApplesProcessor.java:108)
>                  at 
> 
org.apache.cocoon.components.flow.apples.ApplesProcessor.callFunction(ApplesProcessor.java:52)
>                  at 
> 
org.apache.cocoon.components.treeprocessor.sitemap.CallFunctionNode.invoke(CallFunctionNode.java:138)
> 
> so following the ApplesProcessor.java:108 it should make a new instance 
> (thru reflecting) from the "be.sofico.myApple" string "classname" but 
> apparently it is trying to make a Widget object using the old woody 
> package. I don't even understand why it should make a CForms widget at 
> that moment.
> 
> any help is welcome,
> 
> Regards,
> Gunter D'Hondt
> 
>

-- 
Marc Portier                            http://outerthought.org/
Outerthought - Open Source, Java & XML Competence Support Center
Read my weblog at                http://blogs.cocoondev.org/mpo/
[EMAIL PROTECTED]                              [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to