ApplicationMetaData Error in JBoss5 CR2
choudhury Nov 19, 2008 7:10 AMHi All,
I urgently need your help to resolve a issue with ApplicationMetaData. A snippet from the log file is given below
ERROR [org.jboss.ejb.plugins.LogInterceptor] (main) Unexpected Error in method: public abstract void ejbloader.EjbLoaderFacadeLocal.doImport(java.lang.String)
java.lang.NoSuchMethodError: org.jboss.metadata.ApplicationMetaData: method ()V not found
2008-11-19 16:06:27,833 ERROR [ejbloader.ExportManager] (main) Caught RuntimeException: Unexpected Error
java.lang.NoSuchMethodError: org.jboss.metadata.ApplicationMetaData: method ()V not found
at ejbloader.ejb.MetaData.getJbossMeta(MetaData.java:138)
at ejbloader.ejb.MetaData.(MetaData.java:55)
at ejbloader.EjbLoader.importEjb(EjbLoader.java:149)
at ejbloader.EjbLoaderFacadeBean.doImport(EjbLoaderFacadeBean.java:69)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
Looking at the log, I understood the problem might be related with the compiled version of ApplicationMetaData with jboss. With Jboss4.0.2, ApplicationMetaData class comes in jboss.jar but in Jboss5 CR2, it is moved to jboss-metadata.jar. So when I removed the old jboss.jar and introduce new jboss and jboss-metadata.jar, my build failed with following error
[javac] Compiling 16 source files to SOURCES/ejbloader/build
[javac]ejbloader/ejb/MetaData.java:138: cannot find symbol
[javac] symbol : constructor ApplicationMetaData()
[javac] location: class org.jboss.metadata.ApplicationMetaData
[javac] ApplicationMetaData amd = new ApplicationMetaData();
[javac] ^
[javac] Note MetaData.java uses or overrides a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] Note: Some input files use unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[javac] 1 error
A code snippet about how I am using is given below
URL url = getResource(UserLocalHome.class, "META-INF/ejb-jar.xml");
if (log.isDebugEnabled())
log.debug("Using ejb-jar.xml: " + url);
ApplicationMetaData amd = new ApplicationMetaData(url);
amd.setUrl(url);
amd.importEjbJarXml(xfl.getDocumentFromURL(url).getDocumentElement());
I am also getting depricated warning for EntityMetaData,beanMetaData and relationMetaData.
Please let me know how can I overcome from the above problem so that my build doesn't fail. I tried to look for resources about ApplicationMetaData on internet but didn't get much help. Looking from you guys to get some input. Any help will be highly appreciated.