30. januar 2004 - 15:27Der er
33 kommentarer og 1 løsning
Points til arne
Hvor kan du se de forskellige metoder som remotehome interface kan indeholde. Har ikke kunne finde doc. på det?
Noget andet jeg forsøgte var at oprette min egen metode i CMP bean, men uden held. I ejb-jar.xml filen lagde jeg dette ind:
<query> <query-method> <method-name>findByDescription</method-name> <method-params> <method-param>java.lang.String</method-param> </method-params> </query-method> <ejb-ql> <![CDATA[SELECT OBJECT(obj) FROM mp3 obj WHERE genre=?1]]> </ejb-ql> </query>
Denne implementerede jeg så i remotehome på denne måde:
public MP3_Remote findByDescription(String genre) throws FinderException, RemoteException;
Men når jeg deployer får jeg denne fejl:
[ObjectName: jboss.j2ee:jndiName=ejb/MP3,service=EJB state: FAILED I Depend On: Depends On Me: org.jboss.deployment.DeploymentException: Error compiling EJB-QL statement 'SELECT OBJECT(obj) FROM mp3 obj WHERE genre=?1'; - nested throwable: (org.jboss.ejb.plugins.cmp.ejbql.ParseException: Encountered "mp3" at line 1, c olumn 25. Was expecting one of: "IN" ... <ABSTRACT_SCHEMA> ... )]
Jeg vil også takke dig for din støtte arne, du er en stor hjælp i vores projekt.
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
18:04:45,296 INFO [MainDeployer] Starting deployment of package: file:/D:/Udvik ling/JBoss/jboss-3.2.3/jboss-3.2.3/server/default/deploy/BroadOpen_0.1_EJB.jar 18:04:45,937 WARN [verifier] EJB spec violation: Bean : MP3 Method : public abstract void remove(Integer) throws FinderException, RemoteExce ption Section: 12.2.9 Warning: Each home method must match a method defined in the entity bean class.
18:04:45,937 ERROR [MainDeployer] could not create deployment: file:/D:/Udviklin g/JBoss/jboss-3.2.3/jboss-3.2.3/server/default/deploy/BroadOpen_0.1_EJB.jar org.jboss.deployment.DeploymentException: Verification of Enterprise Beans faile d, see above for error messages. at org.jboss.ejb.EJBDeployer.create(EJBDeployer.java:491) at org.jboss.deployment.MainDeployer.create(MainDeployer.java:786) at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:641) at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:605) at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBea nDispatcher.java:284) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546) at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177) at $Proxy6.deploy(Unknown Source) at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymen tScanner.java:302) at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentS canner.java:458) at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread. doScan(AbstractDeploymentScanner.java:201) at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread. loop(AbstractDeploymentScanner.java:212) at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread. run(AbstractDeploymentScanner.java:191)
Nej nej :-) findByDescription er den metode jeg selv fandt på :
<query> <query-method> <method-name>findByDescription</method-name> <method-params> <method-param>java.lang.String</method-param> </method-params> </query-method> <ejb-ql> <![CDATA[SELECT OBJECT(obj) FROM mp3 obj WHERE genre=?1]]> </ejb-ql> </query>
Men remove burde virke ligesom create,findByPrimaryKey og findAll og det gør den ikke. Men jeg kan jo bare selv implementer den ligesom findByDescription.
Den doc. du brugte til at se at remove fandtes er det noget jeg kan få fingre i arne?
Jeg har aldrig prøvet med CMP 2.0, men med CMP 1.1 kunne du bare have lavet en findByGenre uden at angive SQL og containeren havde så gættet hvad du ville (fordi der er en attribut/felt ved navn genre).
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.