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

Java 什么基于JVM的脚本语言支持@WebService在运行时创建服务?,java,web-services,scripting,jvm,jsr223,Java,Web Services,Scripting,Jvm,Jsr223,我需要能够在运行时创建和公开Web服务。(即没有“javac”-编译步骤) 是否有一种基于JVM的脚本语言能够很好地支持JAX-WS,这样我就可以用Java编写一个中心引擎,然后让脚本语言创建包含web服务方法(带有@WebService或@WebMethod注释)的片段,然后将其传递给 如果可能,请提供一个如何正确操作的示例 有什么建议吗?很多人都有,最像Java并支持您想要的东西的可能是groovy 更新以添加示例: 通过谷歌搜索可以找到很多。我所知道的最好的一个例子是,这将引导您完成一个

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

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

如果可能,请提供一个如何正确操作的示例


有什么建议吗?

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

更新以添加示例:

通过谷歌搜索可以找到很多。我所知道的最好的一个例子是,这将引导您完成一个有效的示例。此链接指向另一个关注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的使用)。

感谢您指出“通过谷歌搜索可以找到很多”。如果真的有很多现成的搜索结果,有些可能比其他的好,那么也许你——以你在这件事上的经验——可以帮助我和这个网站的其他访问者直接指出它们。此外,当你将实际的金块内联时,你不需要依赖外部来源,因为外部来源可能会消失,从而使你的答案更好。是的,1000次道歉!我的用词特别差。我编辑了回复,试图阐述你的观点,让它更有意义。老实说,我不确定关于内联这些引用的政策是什么——我也会研究这一点