You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Henning Petersen <he...@daenen4.de> on 2009/07/10 16:00:43 UTC

Injecting Tapestry services into Spring beans

Hi everybody,

I'm trying to inject two services from Tapestry-Spring-Security into a
Spring bean, using Tapestry 5.1.0.5 and Spring 2.5.6-SEC01.

The way I think this should work is this:

public class PasswordChangeServiceImpl implements PasswordChangeService {
	
	@Inject
	private SaltSourceService saltSource;
	@Inject
	private PasswordEncoder passwordEncoder;

	...

	private String createPasswordHash(String plainTextPass) {
		UserDetails userDetails = ...
		Object salt = this.saltSource.getSalt(userDetails);
		return this.passwordEncoder.encodePassword(plainTextPass,
salt);
	}

}

and

<bean id="passwordChangeService" class="PasswordChangeServiceImpl">
	...(other dependencies)...
</bean>

I inject the service instance into my page using the @Inject annotation: 

public class UserProfile {
	@Inject private PasswordChangeService passwordChangeService;
	...
}

The service is properly configured as far as the dependencies handled by
Spring are concerned, but the two services that I'd like to be injected from
Tapestry's IoC newer make it into the instance, and I get a
NullPointerException when they are accessed.

Both SaltSourceService and PasswordEncoder are defined and visible on the
service status page, and they work like a charm when injected into
components directly. I'm not using 5.0 compatibility mode.

Does anyone have an idea what I am missing?

Thanks
Henning


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Injecting Tapestry services into Spring beans

Posted by "Juan E. Maya" <ma...@gmail.com>.
Ok, i found the problem. To inject the service u have to use:

@Inject @Autowired
private Service MyService;

As always the problem was between the screen and chair :)

On Wed, Oct 28, 2009 at 1:06 AM, Juan E. Maya <ma...@gmail.com> wrote:
> Hi Hennig, did u manage to resolve this problem?
>
> i am having the same issue. I just can't inject  any tapestry beans
> inside Spring. I using tapestry 5.1.0.5 and spring 2.6. Without
> compatible mode but the services just don't get injected :(
>
> On Fri, Jul 10, 2009 at 3:00 PM, Henning Petersen
> <he...@daenen4.de> wrote:
>> Hi everybody,
>>
>> I'm trying to inject two services from Tapestry-Spring-Security into a
>> Spring bean, using Tapestry 5.1.0.5 and Spring 2.5.6-SEC01.
>>
>> The way I think this should work is this:
>>
>> public class PasswordChangeServiceImpl implements PasswordChangeService {
>>
>>        @Inject
>>        private SaltSourceService saltSource;
>>        @Inject
>>        private PasswordEncoder passwordEncoder;
>>
>>        ...
>>
>>        private String createPasswordHash(String plainTextPass) {
>>                UserDetails userDetails = ...
>>                Object salt = this.saltSource.getSalt(userDetails);
>>                return this.passwordEncoder.encodePassword(plainTextPass,
>> salt);
>>        }
>>
>> }
>>
>> and
>>
>> <bean id="passwordChangeService" class="PasswordChangeServiceImpl">
>>        ...(other dependencies)...
>> </bean>
>>
>> I inject the service instance into my page using the @Inject annotation:
>>
>> public class UserProfile {
>>        @Inject private PasswordChangeService passwordChangeService;
>>        ...
>> }
>>
>> The service is properly configured as far as the dependencies handled by
>> Spring are concerned, but the two services that I'd like to be injected from
>> Tapestry's IoC newer make it into the instance, and I get a
>> NullPointerException when they are accessed.
>>
>> Both SaltSourceService and PasswordEncoder are defined and visible on the
>> service status page, and they work like a charm when injected into
>> components directly. I'm not using 5.0 compatibility mode.
>>
>> Does anyone have an idea what I am missing?
>>
>> Thanks
>> Henning
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Injecting Tapestry services into Spring beans

Posted by "Juan E. Maya" <ma...@gmail.com>.
Hi Hennig, did u manage to resolve this problem?

i am having the same issue. I just can't inject  any tapestry beans
inside Spring. I using tapestry 5.1.0.5 and spring 2.6. Without
compatible mode but the services just don't get injected :(

On Fri, Jul 10, 2009 at 3:00 PM, Henning Petersen
<he...@daenen4.de> wrote:
> Hi everybody,
>
> I'm trying to inject two services from Tapestry-Spring-Security into a
> Spring bean, using Tapestry 5.1.0.5 and Spring 2.5.6-SEC01.
>
> The way I think this should work is this:
>
> public class PasswordChangeServiceImpl implements PasswordChangeService {
>
>        @Inject
>        private SaltSourceService saltSource;
>        @Inject
>        private PasswordEncoder passwordEncoder;
>
>        ...
>
>        private String createPasswordHash(String plainTextPass) {
>                UserDetails userDetails = ...
>                Object salt = this.saltSource.getSalt(userDetails);
>                return this.passwordEncoder.encodePassword(plainTextPass,
> salt);
>        }
>
> }
>
> and
>
> <bean id="passwordChangeService" class="PasswordChangeServiceImpl">
>        ...(other dependencies)...
> </bean>
>
> I inject the service instance into my page using the @Inject annotation:
>
> public class UserProfile {
>        @Inject private PasswordChangeService passwordChangeService;
>        ...
> }
>
> The service is properly configured as far as the dependencies handled by
> Spring are concerned, but the two services that I'd like to be injected from
> Tapestry's IoC newer make it into the instance, and I get a
> NullPointerException when they are accessed.
>
> Both SaltSourceService and PasswordEncoder are defined and visible on the
> service status page, and they work like a charm when injected into
> components directly. I'm not using 5.0 compatibility mode.
>
> Does anyone have an idea what I am missing?
>
> Thanks
> Henning
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org