Add Oracle WebLogic 14.1.2 support
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 55/100
Research direction
Start with the supported technologies matrix and the WebLogic HTTP failure described in the issue, comparing the existing 12.2 integration coverage with WebLogic 14.1.2. Reproduce against WebLogic 14.1.2.0.0, Oracle JDK 21, agent 1.56.0, and plain HTTP; done means the agent reaches APM Server without the null socket-factory failure and the version is covered by integration tests.
Written by the indexing model from the issue text.
Description
Is your feature request related to a problem?
The supported technologies matrix lists Oracle WebLogic 12.2 as the only version covered by the integration test suite. On WebLogic 14.1.2.0.0 the agent cannot reach APM Server at all. Reverting back to 12c fixes the issue.
The agent starts and the tracer reaches RUNNING, then every outbound HTTP call fails because WebLogic's own HTTP client returns a null socket factory:
WARN co.elastic.apm.agent.report.ApmServerHealthChecker - Elastic APM server http://<apm-server>:8200/ is not available (Cannot invoke "javax.net.SocketFactory.createSocket()" because the return value of "weblogic.net.http.HttpClient.getSocketFactory()" is null)
java.lang.NullPointerException: Cannot invoke "javax.net.SocketFactory.createSocket()" because the return value of "weblogic.net.http.HttpClient.getSocketFactory()" is null
at weblogic.net.http.HttpClient.openServer(HttpClient.java:403) ~[com.oracle.weblogic.net.jar:14.1.2.0]
at weblogic.net.http.HttpClient.New(HttpClient.java:329) ~[com.oracle.weblogic.net.jar:14.1.2.0]
at weblogic.net.http.HttpURLConnection.connect(HttpURLConnection.java:368) ~[com.oracle.weblogic.net.jar:14.1.2.0]
at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:770) ~[com.oracle.weblogic.net.jar:14.1.2.0]
at weblogic.net.http.SOAPHttpURLConnection.getInputStream(SOAPHttpURLConnection.java:42) ~[com.oracle.weblogic.net.jar:14.1.2.0]
at co.elastic.apm.agent.report.HttpUtils.consumeAndClose(HttpUtils.java:62) ~[elastic-apm-agent-1.56.0.jar:1.56.0]
at co.elastic.apm.agent.report.ApmServerClient.executeForAllUrls(ApmServerClient.java:306) ~[elastic-apm-agent-1.56.0.jar:1.56.0]
at co.elastic.apm.agent.report.ApmServerHealthChecker.call(ApmServerHealthChecker.java:67) ~[elastic-apm-agent-1.56.0.jar:1.56.0]
Two things distinguish this from prior reports:
- It occurs on plain HTTP, not HTTPS.
- It is a different failure from #2409, which was an HTTPS
ClassNotFoundExceptionforweblogic.security.SSL.jsseadapter.JaSSLContextImpl. That was fixed by #3870, and 1.56.0 includes the fix, so the socket factory returningnullis not covered by it.
Remaining on 12.2 is not always an available option.
Describe the solution you'd like
Add Oracle WebLogic 14.1.2 to the tested matrix, so the agent connects to APM Server on that version without workarounds.
Describe alternatives you've considered
-DUseSunHttpHandler=truemakes WebLogic defer to the JDK's Sun HTTP handler instead of its own, bypassing the failing class. Reported in earlier WebLogic cases as a global flag that also alters WebLogic's own HTTP behaviour, so a trade-off rather than a clean workaround. Untested against this failure.elastic.apm.delay_agent_premain_mswas tried during the earlier WebLogic investigation and did not reliably help there.- HTTPS rather than HTTP. A distinct WebLogic code path, and the one agent-side defect known to affect it (#2409) is fixed in 1.56.0. Untested here, and gated on the deployment having TLS available.
Additional context
Environment where this was reproduced:
| WebLogic | 14.1.2.0.0, production mode, managed server started via NodeManager |
| JDK | Oracle JDK 21 |
| Agent | 1.56.0 |
| APM Server | self-managed, plain HTTP |
| OS | Linux (RHEL 8) |
- Dominant language
- Java
- Stars
- 593
- Forks
- 337
- Avg merge
- 15h 24m
- Merged PRs (30d)
- 15
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from elastic/apm-agent-java
-
agent-java
Difficulty 2/5 1-2 days Newbie friendliness 62/100
elastic/apm-agent-java#2844 · 2 comments ·
Maintainers usually reply within 1 day
-
Improve docs and add error log related to illegal activation of transactionPossibly taken @AzazelSensei claimed this 29 days ago. Opendocs good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
elastic/apm-agent-java#850 · 4 comments · 1 reaction ·
Maintainers usually reply within 1 day
-
Custom HttpURLConnection throwing unchecked exception can stall the agentPossibly taken @jackshirazi claimed this today. Openagent-java bug
elastic/apm-agent-java#4590 · 1 assignee ·
Maintainers usually reply within 1 day
-
agent-java community triage
elastic/apm-agent-java#4573 · 4 comments ·
Maintainers usually reply within 1 day
-
UnsupportedOperationException at startup when using JDK 26+Possibly taken @mvanhorn claimed this 26 days ago. Openagent-java bug
Difficulty 4/5 3-5 days Newbie friendliness 48/100
elastic/apm-agent-java#4519 · 1 comment ·
Maintainers usually reply within 1 day
All issues in elastic/apm-agent-java
Similar issues
-
Mend: dependency security vulnerability
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
opfab/operatorfabric-core#10653 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
GeminiUtil placeholder user turn ("Continue output. DO NOT look at this line ...") is flagged by prompt injection filtersPossibly taken @innoprej claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 78/100
salesforce/multicloudj#667 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 2 days