java - 什么基于 JVM 的脚本语言支持@WebService 在运行时创建服务?

标签 java web-services scripting jvm jsr223

我现在需要能够在运行时创建和公开 Web 服务。 (即没有“javac”编译步骤)。

是否有一种基于 JVM 的脚本语言对 JAX-WS 有很好的支持,这样我就可以用 Java 编写一个中央引擎,然后让脚本语言创建包含 Web 服务方法的片段(使用 @WebService 或@WebMethod 注释)然后可以传递给

http://docs.oracle.com/javase/6/docs/api/javax/xml/ws/Endpoint.html#publish(java.lang.String, java.lang.Object)

如果可能的话,请举例说明如何正确执行此操作。

有什么建议吗?

最佳答案

很多人都这样做,最像 Java 并支持您想要的东西的可能是 groovy。

更新以添加示例:

通过谷歌搜索可以找到很多。我知道的最好的是here因为这应该会引导您完成一个有效的示例。此链接指向另一个专注于 groovy 的问答站点。他们将引导您完成这个简单的示例:

如果您试用此站点并发现它没有指导意义,请在此处提供反馈。同样,如果您确实搜索并找到了您认为更好/更容易理解的内容,请在此处添加。我不能从同样的角度出发,因此你可以像我一样在这方面做出更多贡献。

Geom.groovy
-------------------
package webservices

import javax.jws.WebService
import javax.jws.soap.SOAPBinding.Style
import javax.jws.soap.SOAPBinding

@WebService
@SOAPBinding(style=Style.RPC)
interface Geom {
    double getArea(double val)
}

Circle.groovy
-------------------
package webservices

import javax.jws.WebService

@WebService(endpointInterface='webservices.Geom')
class Circle implements Geom {
        double getArea(double r) { Math.PI*r*r }
}

publish.groovy
--------------------
package webservices

import javax.xml.ws.Endpoint

Endpoint.publish('http://localhost:5555/circle',new Circle())
println 'ready to receive requests...'

我提供的链接最终可能会中断或被删除。但是(IMO),如果(何时?)技术向更新/更好的方向发展,这很可能会发生。虽然我从上面复制了代码,但该引用资料还有其他非常有用的信息和指示(例如 SoapUI 的使用)。

关于java - 什么基于 JVM 的脚本语言支持@WebService 在运行时创建服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12034538/

相关文章:

java - 将 Couchbase 复制到 ElasticSearch(带多个索引)

java - maven 无法识别我的 "thrift"依赖项?

linux - 关闭终端应该终止与终端相关的进程

asp.net - 如何发送post请求?

linux - 每天定时将文件从服务器A移动到服务器B的Shell脚本

bash - 写单行时 echo 是原子的

java - 创建一个页面,在主要 Activity 开始之前询问用户详细信息

java - 当 where 子句条件可以为 null 时更新 SQL

java - 如何使用 CXF.xml 更改 org.apache.cxf.stax.maxTextLength

java - WSContext.getUserPrincipal() 为密码摘要认证返回 null