[jbossts-issues] [JBoss JIRA] (JBTM-3161) Nested LRA doesn't start in the Spring Boot + JAX-RS application
Matej Kralik (Jira)
issues at jboss.org
Thu Oct 3 04:41:00 EDT 2019
[ https://issues.jboss.org/browse/JBTM-3161?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13794189#comment-13794189 ]
Matej Kralik commented on JBTM-3161:
------------------------------------
When I added the missing _LRAParticipantRegistry_ dependency to the application _JerseyConfig_, the application work* with the latest Narayana as well.
Example of Jersey Config.:
{code:java}
@Component
@ApplicationPath("/")
public class JerseyConfig extends ResourceConfig {
public JerseyConfig() throws URISyntaxException {
register(WadlResource.class);
register(FlightParticipant.class);
packages("io.narayana.lra.filter");
register(new AbstractBinder(){
@Override
protected void configure() {
bind(LRAParticipantRegistry.class)
.to(LRAParticipantRegistry.class);
}
});
}
}
{code}
* However, the LRAParticipantRegistry has to be public. [~mmusgrov] Is it possible to make the LRAParticipantRegistry public in the implementation? Once it will be public, I can create an example of how to use LRA in the Spring Boot + JAX-RS(jersey) service to the Narayana lra quickstart (flight_5.9.8_working in Attachments).
> Nested LRA doesn't start in the Spring Boot + JAX-RS application
> ----------------------------------------------------------------
>
> Key: JBTM-3161
> URL: https://issues.jboss.org/browse/JBTM-3161
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Components: LRA
> Reporter: Matej Kralik
> Assignee: Michael Musgrove
> Priority: Critical
> Attachments: flight_5.9.6.zip, flight_5.9.8.zip, flight_5.9.8_working.zip
>
>
> For demonstrating purpose, I migrated flight service from [narayana quickstart|https://github.com/jbosstm/quickstart/tree/master/rts/lra/flight-service] to the Spring Boot application and uploaded it to the attachment.
> When I stop debugger in the original swarm flight service (FlightParticipant [line 64|https://github.com/jbosstm/quickstart/blob/3b848517086c2abc32bff6895b2972fa38ea6db9/rts/lra/flight-service/src/main/java/io/narayana/rts/lra/demo/flight/FlightParticipant.java#L65]), the *_ at HeaderParam(LRA_HTTP_CONTEXT_HEADER) String lraId_*, is new for that service. When I stop debugger in the SpringBoot+JAX-RS, the lraId is the same as for a parent. It looks that the _ServerLRAFilter_ doesn't start the new LRA.
> I add a breakpoint to the *_ServerLRAFilter.filter(...)_* to see when the filter is applied and create new LRA before the JAX-RS method. When I call original swarm flight service, the filter is used however when I call SpringBoot flight service, the filter is not used so it looks that the filter is not used at all in the SpringBoot+JAX-RS application.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
More information about the jbossts-issues
mailing list