Skip to content

Trying to use deeplearning4j in Web App (.war) with WildFly (JBoss) - RuntimeException #10210

@diavole

Description

@diavole

hello there,

I'll been trying to create a simple vanilla deeplearning4j application using Wildfly 29 in both Windows and Linux (Docker container) but I'm getting the same error:

2025-04-30 17:31:28,633 ERROR [stderr] (default task-1) Caused by: java.lang.RuntimeException: java.lang.NullPointerException: Cannot invoke "org.bytedeco.javacpp.indexer.Raw.putLong(long, long)" because "org.bytedeco.javacpp.indexer.LongRawIndexer.RAW" is null
2025-04-30 17:31:28,633 ERROR [stderr] (default task-1) 	at deployment.sa-deeplearning-1.0.0-M2.1.war//org.nd4j.linalg.api.buffer.BaseDataBuffer.readContent(BaseDataBuffer.java:1678)
2025-04-30 17:31:28,633 ERROR [stderr] (default task-1) 	at deployment.sa-deeplearning-1.0.0-M2.1.war//org.nd4j.linalg.api.buffer.BaseDataBuffer.read(BaseDataBuffer.java:1572)
2025-04-30 17:31:28,633 ERROR [stderr] (default task-1) 	... 55 more
2025-04-30 17:31:28,633 ERROR [stderr] (default task-1) Caused by: java.lang.NullPointerException: Cannot invoke "org.bytedeco.javacpp.indexer.Raw.putLong(long, long)" because "org.bytedeco.javacpp.indexer.LongRawIndexer.RAW" is null
2025-04-30 17:31:28,633 ERROR [stderr] (default task-1) 	at deployment.sa-deeplearning-1.0.0-M2.1.war//org.bytedeco.javacpp.indexer.LongRawIndexer.putRaw(LongRawIndexer.java:107)
2025-04-30 17:31:28,633 ERROR [stderr] (default task-1) 	at deployment.sa-deeplearning-1.0.0-M2.1.war//org.bytedeco.javacpp.indexer.LongRawIndexer.put(LongRawIndexer.java:111)
2025-04-30 17:31:28,633 ERROR [stderr] (default task-1) 	at deployment.sa-deeplearning-1.0.0-M2.1.war//org.nd4j.linalg.api.buffer.BaseDataBuffer.put(BaseDataBuffer.java:1268)
2025-04-30 17:31:28,633 ERROR [stderr] (default task-1) 	at deployment.sa-deeplearning-1.0.0-M2.1.war//org.nd4j.linalg.api.buffer.BaseDataBuffer.putByDestinationType(BaseDataBuffer.java:1035)
2025-04-30 17:31:28,633 ERROR [stderr] (default task-1) 	at deployment.sa-deeplearning-1.0.0-M2.1.war//org.nd4j.linalg.api.buffer.BaseDataBuffer.readContent(BaseDataBuffer.java:1630)
2025-04-30 17:31:28,633 ERROR [stderr] (default task-1) 	... 56 more

I tried with all the tricks I could find in the web from adding the platform attribute during maven building:

mvn -Djavacpp.platform=windows-x86_64 clean install

To create an uber Jar file in both Windows and Linux but I'm still getting the same error, sometimes I get the ND4J backend error but that's fixed by adding the proper dependency:

<dependency>
   <groupId>org.nd4j</groupId>
   <artifactId>nd4j-native</artifactId>
   <version>${dl4j-master.version}</version>
</dependency>

When I execute the test directly with Java everything works perfect on both my local Windows machine and in Docker terminal, the example is able to create the model, fit the training data and store the model + normalizer, but when I try to ether train the new model or load the saved model in WildFly I'm always getting this error, please help 🤕

pom.xml.txt

server.log.txt

PredictServlet.java.txt

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions