Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更改JAX-WS服务URL_Java_Web Services_Glassfish_Jax Ws - Fatal编程技术网

Java 更改JAX-WS服务URL

Java 更改JAX-WS服务URL,java,web-services,glassfish,jax-ws,Java,Web Services,Glassfish,Jax Ws,在创建JAX-WS Web服务时,是否有可能更改Web服务URL 自动URL是(在Glassfish 3上):http:////,但我需要的是:http:////axis/services/(因为它是从axis到JAX-WS的端口) 有没有办法告诉JAX-WS在哪里发布WS? 使用sun-jaxws.xml不是选项,因为它禁用了@EJB/@injectdi。您可以为JAX-WS实现类指定servlet映射。默认情况下,不需要servlet映射,JAX-WS框架会为您生成它。由于您希望为您的web

在创建JAX-WS Web服务时,是否有可能更改Web服务URL

自动URL是(在Glassfish 3上):
http:////
,但我需要的是:
http:////axis/services/
(因为它是从axis到JAX-WS的端口)

有没有办法告诉JAX-WS在哪里发布WS?


使用sun-jaxws.xml不是选项,因为它禁用了@EJB/@injectdi。

您可以为JAX-WS实现类指定servlet映射。默认情况下,不需要servlet映射,JAX-WS框架会为您生成它。由于您希望为您的web服务提供自定义URL映射,因此可以使用自定义URL提供servlet映射

样本:

<servlet>
    <display-name>CalculatorService</display-name>
    <servlet-name>CalculatorService</servlet-name>
    <servlet-class>
        org.apache.geronimo.samples.jws.CalculatorService
    </servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>CalculatorService</servlet-name>
    <url-pattern>/axis/services/calculator</url-pattern>
</servlet-mapping>

计算器服务
计算器服务
org.apache.geronimo.samples.jws.CalculatorService
计算器服务
/安讯士/服务/计算器

请参阅和。

我在相同的上下文中遇到了相同的问题。要在JAX-WS中传递的一些axis2 web服务;所以我必须保持相同的url映射(http://[host]:[port]/[context]/services/[serviceName])

首先,我尝试在WS的impl类上使用带有url模式的@WebServlet注释。它可以在JBossAS7.1和WebLogicServer12上运行,但WebSphereAS8不喜欢。这是因为HttpServlet类没有扩展,但是如果您通过web.xml做了同样的事情,它就会工作

对于要添加到web.xml中的一个web服务:

<servlet>
    <servlet-name>OMInjector</servlet-name>
    <servlet-class>fr.fmoisson.kijq.services.OMInjector</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>OMInjector</servlet-name>
    <url-pattern>/services/OMInjector</url-pattern>
</servlet-mapping>

喷射器
fr.fmoisson.kijq.services.OMInjector
1.
喷射器
/服务/输入

在JAX-WS中没有
@Path
@Path
是Restful服务的注释。但我试过了,但没用,我已经试过了。但我得到的只是一个异常:org.glassfish.deployment.admin.DeployCommand在部署应用程序[webservice]时执行严重异常:这里没有名为MyWebservice的web组件。警告:java.lang.RuntimeException发生错误:此处没有名为MyWebservice的web组件。在com.sun.enterprise.deployment.node.web.WebCommonNode.endElement(WebCommonNode.java:228)在com.sun.enterprise.deployment.node.SaxParserHandler.endElement(SaxParserHandler.java:481)在…这可能会有所帮助。这与您的答案完全不同。。。但正如我在问题中所写的:我不能使用sun-jaxws.xml,因为它破坏了web服务的EJB/CDI功能。仅供参考:我已经问过谷歌了……谢谢你的建议,但是Glassfish忽略了
@WebServlet
注释,当我在web.xml中配置它时,出现了以下异常:
org.apache.catalina.LifecycleException:java.lang.ClassCastException:packagename.IoWebService无法转换为javax.servlet.servlet