spring-projects / spring-projects/spring-ws

GraalVM Native Image support

Open
#1,329 5 comments 6 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type: enhancement
Dominant language
Java
Stars
346
Forks
323
Avg merge
3d 2h
Merged PRs (30d)
7

Description

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:

  1. 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
  }
]

  1. 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.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the reported native-image build for a project using WebServiceTemplate and reviewing the required files under META-INF/native-image. Compare the runtime failures with reflect-config.json and resource-config.json, including the listed classes and Spring-WS properties resources. Done means the relevant native-image configuration is integrated and the reported SOAP client/server scenario runs without those runtime exceptions.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, spring
Domain
backend, build-system
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.