14

実行時に Web サービスを作成して公開できるようにする必要がある状況にあります。(つまり、「javac」コンパイル手順はありません)。

JAX-WS を適切にサポートする JVM ベースのスクリプト言語があるので、Java で中央エンジンを記述し、スクリプト言語に Web サービス メソッド (@WebService または @WebMethod アノテーションのいずれかを使用) を含むスニペットを作成させることができます。 ) に渡すことができます

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

可能であれば、正しく行う方法の例を提供してください。

助言がありますか?

4

1 に答える 1

10

多くの人がそうしていますが、最もJavaに似ていて、あなたが望むものをサポートしているものはおそらくグルーヴィーです.

更新して例を追加します。

グーグル検索でたくさん出てきます。私が知っている最良のものはここにあります。これは、機能する例を紹介するはずです。このリンクは、groovy に焦点を当てた別の Q&A サイトへのリンクです。次の簡単な例を順を追って説明します。

このサイトを試してみて、参考にならないことがわかった場合は、ここにフィードバックを提供してください。同様に、検索して、より理解しやすい/理解しやすいものを見つけた場合は、ここに追加してください. 私はその同じ観点から来ることはできないので、あなたは私と同じようにもっと貢献する必要があります.

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 の使用など) があります。

于 2012-08-20T11:07:48.220 に答える