spring-ws
spring-ws copied to clipboard
GraalVM Native Image support
This is not a bug report, only my experiments to build spring-ws in native image. I have a simple project that uses WebServiceTemplate to send/receive SOAP messages. It compiles fine but there were several runtime exceptions. To resolve them I need following files in META-INF/native-image:
- reflect-config.json:
[
{
"name" : "com.sun.org.apache.xpath.internal.functions.FuncNormalizeSpace",
"allDeclaredConstructors": true
},
{
"name" : "org.springframework.ws.soap.saaj.SaajSoapMessageFactory",
"allDeclaredConstructors": true
},
{
"name" : "org.springframework.ws.transport.http.HttpUrlConnectionMessageSender",
"allDeclaredConstructors": true
},
{
"name" : "org.springframework.ws.soap.client.core.SoapFaultMessageResolver",
"allDeclaredConstructors": true
},
{
"name" : "org.springframework.ws.soap.server.endpoint.adapter.method.SoapMethodArgumentResolver",
"allDeclaredConstructors": true
},
{
"name" : "org.springframework.ws.soap.server.endpoint.adapter.method.SoapHeaderElementMethodArgumentResolver",
"allDeclaredConstructors": true
}
]
- resource-config.json:
{
"resources": {
"includes": [
{
"pattern": "\\Qorg\/springframework\/ws\/transport\/http\/MessageDispatcherServlet.properties\\E"
},
{
"pattern": "\\Qorg\/springframework\/ws\/client\/core\/WebServiceTemplate.properties\\E"
},
{
"pattern": "\\Qorg\/springframework\/ws\/server\/MessageDispatcher.properties\\E"
},
{
"pattern": "\\Qorg\/springframework\/ws\/soap\/server\/SoapMessageDispatcher.properties\\E"
}
]
}
}
Maybe this helps someone to submit official support to spring-ws.
@naihil Thank you! Worked like a charm for me!
How do find out this stuff?
@naihil Thank you! Worked like a charm for me!
How do find out this stuff?
@ksilz You can find parts of it using the native-image-agent.
@naihil Thanks!
This is one of the reasons why we stopped using native image. There are too many libraries even from Spring themselves that don't support it fully yet which means it requires a lot of maintenance work for us.