Failed to marshal Jakarta Enterprise Beans parameters

949 views
Skip to first unread message

l sj

unread,
Jun 14, 2023, 3:12:47 PM6/14/23
to WildFly
    Hello everyone, I am new to WildFly and EJB. Currently, I am upgrading an old project and encountered the following issue: I have deployed two projects, A.ear and b.war, in WildFly 26.1.2. In the b.war project, a servlet obtains keyOps through IKeyOperations keyOps = InitialContext.lookup(keyOpsJNDIName).
    It can successfully invoke keyOps.retrieveEntry() and obtain a SerializableKeyEntry. However, when calling keyOps.getSSLClientAuthenPkiClientWithFriendlyAlias() to get a MessagingClient, or keyOps.getPkiClientWithFriendlyAlias() to get a PkiClient, I encounter the error message: "WFLYEJB0054: Failed to marshal Jakarta Enterprise Beans parameters".
    Can someone help me resolve this error?

code:
b.war ---- TestServlet

```java
public class TestServlet extends MarsActionBase implements Servlet {
    private static final Log log = LogFactory.getLog(TestServlet.class);

    Properties prop;
    String authenAlias;
    String trustAlias;
    String keyOpsJNDIName = "java:global/keyservice/eyservice_ejb/KeyOperations!appserver.ejb.session.IKeyOperations";

    @Override
    public void init(ServletConfig config) throws ServletException {
        try {
            prop = this.getRuntimeProperties();
            prop.put("KEY_OPERATIONS_EJB_REMOTE_JNDI_NAME", keyOpsJNDIName);
            authenAlias = prop.getProperty("MESSAGING_CLIENT_KMU_AUTHEN_ALIAS");
            trustAlias = prop.getProperty("MESSAGING_CLIENT_KMU_TRUST_ALIAS");
        } catch (Exception e) {
            throw new RuntimeException(e);
        }

    }

    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        HttpServletRequest request = (HttpServletRequest) req;
        String p = request.getParameter("p");

        try {
            InitialContext context = new InitialContext(prop);
            IKeyOperations keyOps = (IKeyOperations)context.lookup(keyOpsJNDIName);
            if ("a".equals(p)) {
                retrieveEntry(keyOps);
            } else if ("b".equals(p)) {
                getPkiClientWithFriendlyAlias(keyOps);
            } else {
                getSSLClientAuthMessagingClientWithFriendlyAlias(keyOps);
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    private void retrieveEntry(IKeyOperations keyOps) throws KeyStoreException, RemoteException {
        log.info("retrieveEntry: " + keyOps.retrieveEntry(kmuAuthenAlias, new Date()));
    }

    private void getPkiClientWithFriendlyAlias(IKeyOperations keyOps) throws RemoteException, KeyServiceException {
        log.info("getPkiClientWithFriendlyAlias: " + keyOps.getPkiClientWithFriendlyAlias(kmuAuthenAlias, kmuTrustAlias, prop));
    }

    private void getSSLClientAuthMessagingClientWithFriendlyAlias(IKeyOperations keyOps) throws RemoteException, KeyServiceException {
        log.info("getPkiClientWithFriendlyAlias: " + keyOps.getSSLClientAuthMessagingClientWithFriendlyAlias(kmuAuthenAlias, kmuTrustAlias, prop));
    }
}
```

class
```java
public class ClientBase implements Serializable {
    public static final String DEFAULT_APPLICATION = "HTTPS_APPLICATION";
    public static final boolean DEFAULT_RETRY_ON_EXCEPTION = false;
    public static final int DEFAULT_RETRY_COUNT = 0;
    public static final int DEFAULT_RESTART_INTERVAL = 600000;
    public static final int DEFAULT_SLEEP_INTERVAL = 0;
    protected Logger m_logger;
    private Map retryTimeMap;
    private Map retryPosMap;
    private Properties m_properties;
    private Properties m_proxProperties;
    private List m_defApp;
    private static final String LOG_DATE_FORMAT = "yyyyMMdd";

...
}



public class MessagingClient extends ClientBase implements Serializable {
    private Map fileMap;
    private static final int DEFAULT_MAX_FILE_SIZE = 10000000;
    private static final String USE_SINGLE_ONLY = "S";
    private static final String USE_RETR_ONLY = "R";

...
}


public class PkiClient extends ClientBase implements Serializable {
    public static final String CRL_CHECK_CERT_FORMAT_ERROR = "CRL_CHECK_CERT_FORMAT_ERROR";
    private String m_providerName;
    private String m_type;

...
}
```

exception
```
11:31:18,202 ERROR [hk.gov.ogcio.mars.rm.filter.AuthenticationFilter] (default task-11) Failed to process SAML request: javax.servlet.ServletException: java.lang.RuntimeException: java.lang.RuntimeException: WFLYEJB0054: Failed to marshal Jakarta Enterprise Beans parameters
        at hk.gov.ogcio.mars.rm.filter.AuthenticationFilter.doFilter(AuthenticationFilter.java:162)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
        at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
        at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
        at com.ynashk.emagmars.web.filter.LanguageFilter.doFilter(LanguageFilter.java:102)
        at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
        at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
        at com.ynashk.emagmars.web.filter.HTMLInjectionFilter.doFilter(HTMLInjectionFilter.java:54)
        at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
        at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
        at com.ynashk.emagmars.web.filter.RequestEncodingFilter.doFilter(RequestEncodingFilter.java:40)
        at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
        at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
        at com.ynashk.emagmars.web.filter.AuthorizationFilter.doFilter(AuthorizationFilter.java:156)
        at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
        at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
        at hk.gov.ogcio.mars.rm.filter.AuthenticationFilter.doFilter(AuthenticationFilter.java:159)
        at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
        at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
        at hk.gov.ogcio.mars.rm.saml.metadata.MetadataDisplayFilter.doFilter(MetadataDisplayFilter.java:93)
        at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
        at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:118)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:158)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:92)
        at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:77)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
        at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
        at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
        at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:128)
        at org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:66)
        at org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:103)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:121)
        at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
        at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
        at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
        at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
        at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
        at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
        at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
        at org.wildfly.elytron.web.undertow.server.ElytronRunAsHandler.lambda$handleRequest$1(ElytronRunAsHandler.java:68)
        at org.wildfly.security.auth.server.FlexibleIdentityAssociation.runAsFunctionEx(FlexibleIdentityAssociation.java:103)
        at org.wildfly.security.auth.server.Scoped.runAsFunctionEx(Scoped.java:161)
        at org.wildfly.security.auth.server.Scoped.runAs(Scoped.java:73)
        at org.wildfly.elytron.web.undertow.server.ElytronRunAsHandler.handleRequest(ElytronRunAsHandler.java:67)
        at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
        at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
        at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
        at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
        at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
        at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
        at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
        at org.wildfly.elytron.web.undertow.server.servlet.CleanUpHandler.handleRequest(CleanUpHandler.java:38)
        at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
        at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
        at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
        at org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68)
        at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
        at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
        at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:275)
        at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:79)
        at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134)
        at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131)
        at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
        at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
        at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1544)
        at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1544)
        at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1544)
        at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1544)
        at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1544)
        at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
        at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:79)
        at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100)
        at io.undertow.server.Connectors.executeRootHandler(Connectors.java:387)
        at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852)
        at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
        at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
        at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: WFLYEJB0054: Failed to marshal Jakarta Enterprise Beans parameters
        at com.ynashk.emagmars.web.servlet.TestServlet.service(TestServlet.java:88)
        at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
        at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
        at io.opentracing.contrib.jaxrs2.server.SpanFinishingFilter.doFilter(SpanFinishingFilter.java:52)
        at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
        at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
        at hk.gov.ogcio.mars.rm.filter.AuthenticationFilter.doFilter(AuthenticationFilter.java:159)
        ... 109 more
Caused by: java.lang.RuntimeException: WFLYEJB0054: Failed to marshal Jakarta Enterprise Beans parameters
        at org.jboss.as.ejb3.remote.LocalEjbReceiver.clone(LocalEjbReceiver.java:380)
        at org.jboss.as.ejb3.remote.LocalEjbReceiver.clone(LocalEjbReceiver.java:360)
        at org.jboss.as.ejb3.remote.LocalEjbReceiver$CloningResultProducer.getResult(LocalEjbReceiver.java:300)
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:620)
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:551)
        at org.jboss.ejb.protocol.remote.RemotingEJBClientInterceptor.handleInvocationResult(RemotingEJBClientInterceptor.java:57)
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:622)
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:551)
        at org.jboss.ejb.client.TransactionPostDiscoveryInterceptor.handleInvocationResult(TransactionPostDiscoveryInterceptor.java:148)
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:622)
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:551)
        at org.jboss.ejb.client.DiscoveryEJBClientInterceptor.handleInvocationResult(DiscoveryEJBClientInterceptor.java:130)
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:622)
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:551)
        at org.jboss.ejb.client.NamingEJBClientInterceptor.handleInvocationResult(NamingEJBClientInterceptor.java:87)
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:622)
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:551)
        at org.jboss.ejb.client.AuthenticationContextEJBClientInterceptor.call(AuthenticationContextEJBClientInterceptor.java:59)
        at org.jboss.ejb.client.AuthenticationContextEJBClientInterceptor.handleInvocationResult(AuthenticationContextEJBClientInterceptor.java:52)
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:622)
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:551)
        at org.jboss.ejb.client.TransactionInterceptor.handleInvocationResult(TransactionInterceptor.java:212)
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:622)
        at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:551)
        at org.jboss.ejb.client.EJBClientInvocationContext.awaitResponse(EJBClientInvocationContext.java:1003)
        at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:182)
        at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:116)
        at com.sun.proxy.$Proxy237.getPkiClientWithFriendlyAlias(Unknown Source)
        at com.ynashk.emagmars.web.servlet.TestServlet.getPkiClientWithFriendlyAlias(TestServlet.java:99)
        at com.ynashk.emagmars.web.servlet.TestServlet.service(TestServlet.java:81)
        ... 115 more
Caused by: java.io.NotSerializableException: java.lang.Object
        at org.jboss.marshalling.cloner.SerializingCloner.initSerializableClone(SerializingCloner.java:273)
        at org.jboss.marshalling.cloner.SerializingCloner.initSerializableClone(SerializingCloner.java:281)
        at org.jboss.marshalling.cloner.SerializingCloner.initSerializableClone(SerializingCloner.java:281)
        at org.jboss.marshalling.cloner.SerializingCloner.clone(SerializingCloner.java:256)
        at org.jboss.marshalling.cloner.SerializingCloner.clone(SerializingCloner.java:132)
        at org.jboss.as.ejb3.remote.LocalEjbReceiver.clone(LocalEjbReceiver.java:378)
```

Jason Lee

unread,
Jun 14, 2023, 11:27:28 PM6/14/23
to l sj, WildFly
Have you tried implementing Serializable?


Jason Lee

Principal Software Engineer

Red Hat JBoss EAP



--
You received this message because you are subscribed to the Google Groups "WildFly" group.
To unsubscribe from this group and stop receiving emails from it, send an email to wildfly+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/wildfly/4311494d-05ed-440b-bf68-6cb5722ffed2n%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages