我处于需要能够在运行时创建和公开 Web 服务的情况。(即没有“javac”编译步骤)。
是否有一种基于 JVM 的脚本语言对 JAX-WS 有很好的支持,所以我可以用 Java 编写一个中央引擎,然后让脚本语言创建包含 Web 服务方法的片段(使用 @WebService 或 @WebMethod 注释) 然后可以传递给
如果可能的话,请提供一个如何正确执行的示例。
有什么建议么?
我处于需要能够在运行时创建和公开 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 的使用)。