E-Mail-Parameter mail.transport.protocol fehlt bei zusätzlichem Mandanten
Zusammenfassung
Zusätzlichen Mandanten fehlt der E-Mail-Parameter mail.transport.protocol, weshalb keine E-Mails verschickt werden können.
Schritte zum Reproduzieren
- Hauptmandant anlegen
- E-Mails korrekt konfigurieren, Versand ist möglich
- zweiten Mandant anlegen
- System/Parameter/E-Mail ist jetzt teilweise vorbelegt, aber nicht vollständig. In diesem Tab die fehlenden Werte eintragen.
- Über System/Parameter/E-Mail-Admin eine Test-Email verschicken
Aufgefallen ist das Problem bei Release 1.1.6, was aus einer Migration von einem ursprünglichen 1.0.11 hervorging. In den Commits habe ich aber auf Anhieb keine Änderungen gesehen, die an diesem Verhalten etwas ändern sollten.
Modul, Maske, Terminal, API-Aufruf, Bericht
Am besten sichtbar ist der Fehler im Test-Email-Versand in System/Parameter/E-Mail-Admin. Tatsächlich werden aber auch keine anderen E-Mails verschickt.
Wie ist das aktuelle Fehlerverhalten?
Es werden keine E-Mails verschickt. Der Client zeigt an:
Es ist ein unerwarteter Fehler aufgetreten:
com.lp.client.frame.ExceptionLP at com.lp.client.frame.delegate.Delegate.handleThrowable(Delegate.java:270) at com.lp.client.frame.delegate.VersandDelegate.testMailConfiguration(VersandDelegate.java:352) at com.lp.client.system.mail.DialogTestMailConfigurationSendMessageWorker.doInBackground(DialogTestMailConfiguration.java:347) at com.lp.client.system.mail.DialogTestMailConfigurationSendMessageWorker.doInBackground(DialogTestMailConfiguration.java:336) at java.desktop/javax.swing.SwingWorker1.call(SwingWorker.java:304) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.desktop/javax.swing.SwingWorker.run(SwingWorker.java:343) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutorWorker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.NullPointerException at deployment.kieselstein-1.1.6.ear.kieselstein-ejb-1.1.6.jar//com.lp.server.system.mail.service.LPMail.send(LPMail.java:200) at deployment.kieselstein-1.1.6.ear.kieselstein-ejb-1.1.6.jar//com.lp.server.system.mail.ejbfac.MailProcessorFacBeanSendingMailTester.send(MailProcessorFacBean.java:474) at deployment.kieselstein-1.1.6.ear.kieselstein-ejb-1.1.6.jar//com.lp.server.system.mail.ejbfac.MailProcessorFacBeanSendingMailTester.doIt(MailProcessorFacBean.java:391) at deployment.kieselstein-1.1.6.ear.kieselstein-ejb-1.1.6.jar//com.lp.server.system.mail.ejbfac.MailProcessorFacBean.testMailConfiguration(MailProcessorFacBean.java:360)
[...]
Was ist das erwartete richtige Verhalten?
Es werden E-Mails verschickt. Der Client zeigt an:
Mail erzeugt: Ja
Mail gesendet: Ja
Relevante Log-Dateien und/oder Screenshots
Server.log:
2025-11-07 17:44:54,446 ERROR [org.jboss.as.ejb3.invocation] (default task-38) WFLYEJB0034: Jakarta Enterprise Beans Invocation failed on component VersandFacBean for method public abstract com.lp.server.system.mail.service.MailTestMessageResult com.
lp.server.system.service.VersandFac.testMailConfiguration(com.lp.server.system.mail.service.MailTestMessage,com.lp.server.system.service.TheClientDto) throws com.lp.util.EJBExceptionLP,java.rmi.RemoteException: javax.ejb.EJBTransactionRolledbackExcep
tion
at org.jboss.as.ejb3@26.1.2.Final//org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInCallerTx(CMTTxInterceptor.java:219)
at org.jboss.as.ejb3@26.1.2.Final//org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:392)
at org.jboss.as.ejb3@26.1.2.Final//org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:160)
at org.jboss.invocation@1.7.0.Final//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.invocation@1.7.0.Final//org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:509)
at org.jboss.weld.core@3.1.9.Final//org.jboss.weld.module.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:72)
at org.jboss.as.weld.common@26.1.2.Final//org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:89)
at org.jboss.invocation@1.7.0.Final//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.as.ejb3@26.1.2.Final//org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
at org.jboss.invocation@1.7.0.Final//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.as.ejb3@26.1.2.Final//org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:47)
at org.jboss.invocation@1.7.0.Final//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.as.ejb3@26.1.2.Final//org.jboss.as.ejb3.security.IdentityOutflowInterceptor.processInvocation(IdentityOutflowInterceptor.java:73)
at org.jboss.invocation@1.7.0.Final//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.as.ejb3@26.1.2.Final//org.jboss.as.ejb3.security.SecurityDomainInterceptor.processInvocation(SecurityDomainInterceptor.java:44)
at org.jboss.invocation@1.7.0.Final//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.as.ejb3@26.1.2.Final//org.jboss.as.ejb3.deployment.processors.StartupAwaitInterceptor.processInvocation(StartupAwaitInterceptor.java:22)
at org.jboss.invocation@1.7.0.Final//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.as.ejb3@26.1.2.Final//org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64)
at org.jboss.invocation@1.7.0.Final//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.as.ejb3@26.1.2.Final//org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:67)
at org.jboss.invocation@1.7.0.Final//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.as.ee@26.1.2.Final//org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
at org.jboss.invocation@1.7.0.Final//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.invocation@1.7.0.Final//org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:60)
at org.jboss.invocation@1.7.0.Final//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.invocation@1.7.0.Final//org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:438)
at org.wildfly.security.elytron-base@1.19.1.Final//org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:633)
at org.jboss.invocation@1.7.0.Final//org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:57)
at org.jboss.invocation@1.7.0.Final//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.invocation@1.7.0.Final//org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:53)
at org.jboss.as.ee@26.1.2.Final//org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:198)
at org.jboss.as.ee@26.1.2.Final//org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:191)
at org.jboss.as.ee@26.1.2.Final//org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:81)
at deployment.kieselstein-1.1.6.ear.kieselstein-ejb-1.1.6.jar//com.lp.server.system.mail.service.MailProcessorFac$$$view179.testMailConfiguration(Unknown Source)
[...]
Caused by: java.lang.NullPointerException
at deployment.kieselstein-1.1.6.ear.kieselstein-ejb-1.1.6.jar//com.lp.server.system.mail.service.LPMail.send(LPMail.java:200)
at deployment.kieselstein-1.1.6.ear.kieselstein-ejb-1.1.6.jar//com.lp.server.system.mail.ejbfac.MailProcessorFacBean$SendingMailTester.send(MailProcessorFacBean.java:474)
at deployment.kieselstein-1.1.6.ear.kieselstein-ejb-1.1.6.jar//com.lp.server.system.mail.ejbfac.MailProcessorFacBean$SendingMailTester.doIt(MailProcessorFacBean.java:391)
at deployment.kieselstein-1.1.6.ear.kieselstein-ejb-1.1.6.jar//com.lp.server.system.mail.ejbfac.MailProcessorFacBean.testMailConfiguration(MailProcessorFacBean.java:360)
[...]
Das Log stammt aus Release 1.1.6, wo die entsprechenden Code-Zeilen lauten:
public void send(String smtpHost, String user, String password, Message message) throws javax.mail.MessagingException {
if (ServerConfiguration.getIsDevEnvironment()) {
myLogger.info("LPMail send() -> " + message.toString());
return;
}
String transportProtocol = mailSession.getProperties().getProperty("mail.transport.protocol");
if (transportProtocol.equalsIgnoreCase("graph")) {
sendGraphService(message, clientSecretCredential(mailSession.getProperties()) );
} else {
Transport transport = mailSession.getTransport("smtp");
transport.connect(smtpHost, user, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
}
Mögliche Korrekturen
Per Hand in System/Parameter/E-Mail den Parameter "mail.transport.protocol" auf "smtp" setzen.