Java 无法查看wsdl文档jax-ws

Java 无法查看wsdl文档jax-ws,java,web-services,soap,jax-ws,java-11,Java,Web Services,Soap,Jax Ws,Java 11,我正在尝试使用带注释的类和Jax-WS部署web服务。我正在使用maven部署它 这个类只是我之前在Java8中使用的一个示例程序。我最近搬到了Java11,它不再工作了。我知道Java11的所有变化,并添加了许多不同的依赖项集(我以前成功地使用com.sun.xml.ws:rt:2.3.1和javax.xml.ws:jaxws-api:2.3.1与Java9) 我可以在Java11中以这种方式使用Jax WS,还是需要切换到自顶向下的方法 提前谢谢 守则: package quote; im

我正在尝试使用带注释的类和Jax-WS部署web服务。我正在使用maven部署它

这个类只是我之前在Java8中使用的一个示例程序。我最近搬到了Java11,它不再工作了。我知道Java11的所有变化,并添加了许多不同的依赖项集(我以前成功地使用com.sun.xml.ws:rt:2.3.1和javax.xml.ws:jaxws-api:2.3.1与Java9)

我可以在Java11中以这种方式使用Jax WS,还是需要切换到自顶向下的方法

提前谢谢

守则:

package quote;

import java.util.Map;
import java.util.TreeMap;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
import javax.jws.soap.SOAPBinding.Use;
import javax.xml.ws.Endpoint;


@WebService
@SOAPBinding(style = Style.RPC, use= Use.LITERAL)
public class StockPrice {
    public static void main(String[] args) {
        Endpoint.publish("http://localhost:9000/quote", new StockPrice());
    }

    private Map<String, Double> prices = new TreeMap<>();
    {
        prices.put("IBM", 143.79);
        prices.put("GOOGL", 1209.70);
        prices.put("MSFT", 137.44);
        prices.put("FB", 175.25);
        prices.put("TWTR", 40.22);
    }

    @WebMethod public double GetStockQuote(String StockName) {
        Double price = prices.get(StockName);
        return price == null ? -1:price;
    }
}
套餐报价;
导入java.util.Map;
导入java.util.TreeMap;
导入javax.jws.WebMethod;
导入javax.jws.WebService;
导入javax.jws.soap.SOAPBinding;
导入javax.jws.soap.SOAPBinding.Style;
导入javax.jws.soap.SOAPBinding.Use;
导入javax.xml.ws.Endpoint;
@网络服务
@SOAPBinding(style=style.RPC,use=use.LITERAL)
公共类股票价格{
公共静态void main(字符串[]args){
Endpoint.publish(“http://localhost:9000/quote“,新股票价格());
}
私有地图价格=新树地图();
{
卖出价(“IBM”,143.79);
价格。卖出价(“GOOGL”,1209.70);
卖出价(“MSFT”,137.44);
卖出价(“FB”,175.25);
卖出价(“TWTR”,40.22);
}
@WebMethod公共双GetStockQuote(字符串StockName){
双倍价格=价格。获取(StockName);
返回价格==null?-1:价格;
}
}
pom.xml文件:

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>examples</groupId>
    <artifactId>service</artifactId>
    <version>0.0.1</version>
    <packaging>jar</packaging>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>    

    <dependencies>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-catalina</artifactId>
            <version>9.0.38</version>
        </dependency>
        <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.metro</groupId>
            <artifactId>webservices-rt</artifactId>
            <version>2.4.4</version>
        </dependency>    
        <dependency>
            <groupId>jakarta.xml.ws</groupId>
            <artifactId>jakarta.xml.ws-api</artifactId>
            <version>2.3.3</version>
        </dependency>
        <!-- <dependency>
            <groupId>com.sun.xml.ws</groupId>
            <artifactId>jaxws-ri</artifactId>
            <version>2.3.1</version>
            <type>pom</type>
        </dependency> -->
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.6.0</version>
                <configuration>
                    <mainClass>quote.StockPrice</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

4.0.0
例子
服务
0.0.1
罐子
11
11
org.apache.tomcat
卡塔琳娜雄猫
9.0.38
javax.annotation
javax.annotation-api
1.3.2
org.glassfish.metro
Web服务rt
2.4.4
jakarta.xml.ws
jakarta.xml.ws-api
2.3.3
org.codehaus.mojo
execmaven插件
1.6.0
股票价格

所以,我自己设法解决了这个问题。Web服务发布方式的问题似乎是,
endpoint.publish(…)
方法不能像以前那样工作

为了解决这个问题,我不得不使用以下
main()
方法:

    public static void main(String[] args) throws IOException {
        Endpoint endpoint = Endpoint.create(new StockPrice());
        HttpServer server = HttpServer.create(new InetSocketAddress(8080), 5);
        server.setExecutor(Executors.newFixedThreadPool(5));
        HttpContext context = server.createContext("/quote");

        endpoint.publish(context);
        server.start();
    }
我从“地铁入门”教程中了解到:

具体来说,我必须下载“来自Java示例”的代码库,其中包括作为部署端点的“可选”替代方法的代码库