<dependency>
<groupId>jakarta.xml.ws</groupId>
<artifactId>jakarta.xml.ws.annotation</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.jakarta.metadata</groupId>
<artifactId>jakarta-metadata</artifactId>
<version>1.2.0</version>
</dependency>
@WebService
public class HelloWebService {
@WebMethod
public String sayHello(String name) {
return "Hello, " + name + "!";
}
}
import jakarta.xml.ws.Endpoint;
import jakarta.xml.ws.WebServiceFeature;
import jakarta.xml.ws.handler.Handler;
import org.apache.jakarta.metadata.MetadataBuilder;
import org.apache.jakarta.metadata.model.*;
import org.apache.jakarta.metadata.model.impl.sun.SunMetaFactory;
import java.util.List;
public class MetadataReader {
public static void main(String[] args) {
SunMetaFactory metaFactory = new SunMetaFactory();
MetadataBuilder builder = metaFactory.createMetadataBuilder();
WebServiceModel wsModel = builder.buildModel(HelloWebService.class);
System.out.println("Web Service Name: " + wsModel.getName());
System.out.println("Web Service Namespace: " + wsModel.getNamespace());
System.out.println("Web Service Operations:");
List<OperationModel> operationList = wsModel.getOperations();
for (OperationModel operation : operationList) {
System.out.println(" - Operation Name: " + operation.getName());
System.out.println(" Request Wrapper: " + operation.getRequestWrapper());
System.out.println(" Response Wrapper: " + operation.getResponseWrapper());
System.out.println(" Parameter Count: " + operation.getParameterCount());
System.out.println(" Parameter Types: " + operation.getParameterTypes());
System.out.println(" Return Type: " + operation.getReturnType());
}
}
}