Ich habe Probleme mit einem Feld als @Resource
in einer Spring Bean kommentiert. Was ich habe:Spring @Resource Handling
Ein Feld, mit Set-Methode,
@Resource
private URL someUrl;
public void setSomeUrl(URL someUrl) {
this.someUrl = someUrl;
}
Ein <env-entry>
Tag in meinem Deployment Descriptor @Resource
kommentierte (web.xml)
<env-entry>
<env-entry-name>someUrl</env-entry-name>
<env-entry-type>java.net.URL</env-entry-type>
<env-entry-value>http://somedomain.net/some/path</env-entry-value>
</env-entry>
Die Anwendung schlägt mit einem beginnen BeanCreationException
, was ich nicht erwarte, weil ich nicht unbedingt möchte, dass eine Spring-Managed-Bean injiziert wird. Ich möchte, dass Spring @Resource
verarbeitet und die JNDI-Ressource abruft.
Dies ist Spring 2.5.6SEC03 und die Bean selbst ist mit @Service
zum Autowiren in andere @Component
Instanzen annotiert. Der Servlet-Container ist in diesem Fall Tomcat 7, wird aber letztendlich auf Weblogic 10 bereitgestellt werden. Obwohl ich idealerweise eine Lösung für beide verwenden möchte, ist Weblogic das Must-Have.
Verwende ich diese Funktion in Frühling 2.5? Im Algemeinen? Gibt es ein bisschen was ich vermisse? Was habe ich an JNDI falsch verstanden? Alle Hilfe wird geschätzt. Vielen Dank.
Großartig, das hat total funktioniert! Ich habe auch festgestellt, dass Sie CommonAnnotationBeanPostProcessor zwingen können, eine JNDI-Suche durchzuführen, indem Sie einen Wert für "mappedName" im Annotation-Body angeben. Alles in allem haben wir nach der Arbeit gelernt, dass unser standardmäßiger Unternehmensbereitstellungsprozess nicht mehrere Implementierungsdeskriptoren unterstützt. Ich sollte das gleiche für alle Bereitstellungen verwenden. Also, dieser Ansatz wird nicht funktionieren. –