quarkiverse / quarkus-cxf

Quarkus CXF Extension to support SOAP based web services.
Apache License 2.0
71 stars 57 forks source link

Quarkus 3.12.0 with CXF: java.lang.NullPointerException in CxfDeploymentUtils.findSei(CxfDeploymentUtils.java:60) without #1427

Open gawrilsemke opened 2 days ago

gawrilsemke commented 2 days ago
[ERROR]   PackageSequenceGeneratorTest.testGetPackageId » Runtime java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
    [error]: Build step io.quarkiverse.cxf.deployment.CxfEndpointImplementationProcessor#collectEndpoints threw an exception: java.lang.NullPointerException: Cannot invoke "org.jboss.jandex.ClassInfo.annotation(org.jboss.jandex.DotName)" because "interfaceInfo" is null
    at io.quarkiverse.cxf.deployment.CxfDeploymentUtils.findSei(CxfDeploymentUtils.java:60)

The solution was to add a parameter 'endpointInterface' by WS Annotation: @WebService(targetNamespace = "http://some", serviceName = "SomeServices", endpointInterface = "SomePortType") public class SomePortTypeImpl implements SomePortType {...

is it naccessery? backwards compatibility?

JavaDoc: String jakarta.jws.WebService.endpointInterface() The complete name of the service endpoint interface defining the service's abstract Web Service contract.

This annotation allows the developer to separate the interface contract from the implementation. If this annotation is present, the service endpoint interface is used to determine the abstract WSDL contract (portType and bindings). The service endpoint interface MAY include JSR-181 annotations to customize the mapping from Java to WSDL. The service implementation bean MAY implement the service endpoint interface, but is not REQUIRED to do so. If this member-value is not present, the Web Service contract is generated from annotations on the service implementation bean. If a service endpoint interface is required by the target environment, it will be generated into an implementation-defined package with an implementation- defined name

This member-value is not allowed on endpoint interfaces. Default: ""