Spring lookup bean auf jboss server

grob

Grünschnabel
Hi

ich habe eine JavaBean die sich ihre dependency über
Code:
		Resource res = new ClassPathResource("beans.xml");
		BeanFactory factory = new XmlBeanFactory(res);
		ree = (IObject) factory.getBean("object");
holt

spring ist wie folge konfiguriert
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
	<bean name="object" class="Object"
		singleton="true">
	</bean>
</beans>

jedoch

bräuchte man um die von jboss server zu holen

Code:
		Properties properties = new Properties();
 roperties.put("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
		properties.put("java.naming.factory.url.pkgs","=org.jboss.naming:org.jnp.interfaces");
		properties.put("java.naming.provider.url","localhost:1099");     
		Context context;
		context = new InitialContext(properties);
		Objectremote beanRemote = (ObjectRemote) context.lookup("Object/remote");


kann ich meine spring konfiguration auch so ändern, dass das objekt vom server geholt wird, ohne dass ich meinen quellcode verändern muss damit ich gegebennen falls auch wieder die lokale version benutzen kann?



Habe schon folgendes probiert aber es kommt immer nur eine "javax.naming.NameNotFoundException:"

HTML:
	<bean id="object"
		class="org.springframework.ejb.access.SimpleRemoteStatelessSessionProxyFactoryBean">
		<property name="jndiName">
			<value>
				Object/remote
		</value>
		</property>
		<property name="jndiEnvironment">
			<props>
				<prop key="java.naming.factory.initial">
					org.jnp.interfaces.NamingContextFactory
			</prop>

				<prop key="java.naming.factory.url.pkgs">
					=org.jboss.naming:org.jnp.interfaces
			</prop>
				<prop key="java.naming.provider.url">
					localhost:1099
			</prop>
			</props>
		</property>
	</bean>
 
Zuletzt bearbeitet:
ok hab das problem gelöst
HTML:
		<property name="businessInterface">
			<value>org.test.interfacevonmeinerklasse</value>
		</property>
hat noch gefehlt
 
jetzt hat sich nurnoch die frage aufgetan an welcher stelle übergebe ich der bean dann noch konstruktor-argumente?
 
Ein paar Dinge:
1. Schau dir mal den jee-Namespace in Spring an, damit wird die Konfiguration um einiges übersichtlicher
2. Du kannst logischerweise keine Konstruktorargumente angeben, da die Bean nicht on dir oder Spring erzeugt wird, sondern von deinem ApplicationServer. Was Spring für dich tut, ist, einen Proxy zu erzeugen, der auf die RemoteBean zugreift. Nicht mehr und nicht weniger ;)

Gruß
Ollie
 
Zurück