Java Web Services API,但是我无法在服务器上运行JVM

时间:2020-03-05 18:50:28  来源:igfitidea点击:

我正在尝试使用来自PlanPlusOnline帐户的一些数据。它们仅提供Java Web服务API。用于将要使用数据的站点的服务器不允许我安装Tomcat(对此,请编辑:或者JVM)。我不会撒谎,我是一名Java软件工程师,而且我会做一些网络工作。我不熟悉Web服务或者servlet,但是我愿意尝试一下。我更希望它们可以对数据进行JSON访问,但是据我所知它们没有。有任何想法吗?

编辑:澄清。 planplusonline提供的Web服务是基于Java的。我试图不使用Java从此Web服务访问数据。我相信现在这是可能的,但是我需要做更多的研究。任何能帮助我指出正确方向的人都将受到赞赏。

解决方案

回答

我们是否要为其他地方托管的Web服务实现客户端?如果是这样,则不需要Java。我们可以使用.NET,PHP,Ruby或者几乎任何现代网络技术进行网络服务客户端。我们所需要的只是一个WSDL文档,以提供有关如何调用服务的元数据。

回答

为了跟上jodonnell的评论,几乎可以使用任何服务器端语言进行Web服务连接。他们提供的API示例只是用Java编写的,可能是因为PlanPlusOnline是用Java编写的。如果我们有服务的URL和访问密钥,那么我们真正需要做的就是弄清楚如何遍历返回的XML。如果我们不能使用Java,那么我建议我们使用PHP,因为它可能已经安装了,并已加载了正确的模块。该链接可能会有所帮助:

http://www.onlamp.com/pub/a/php/2007/07/26/php-web-services.html

回答

如果我正确理解了问题,则只需连接到现有的Web服务,而无需创建自己的Web服务。如果是这种情况,并且也许我缺少一些东西,我不认为我们完全需要Tomcat。如果使用的是Netbeans,则可以创建一个新的Desktop或者Web应用程序,然后右键单击项目名称。选择"新建",然后选择"其他",然后选择" Web客户端"。输入有关在何处可以找到WSDL的信息(通常是URL)以及其他必需信息。

添加WebClient后,创建一个新类,该类实际上是对Web服务的调用。如果Web服务名称为PlanPlusOnline,则可能会有类似以下内容:

public final class PlanPlusOnlineClient
{
    //instance to this class so that we do not have to reinstantiate it every time
    private static PlanPlusOnlineClient _instance = new PlanPlusOnlineClient();

    //generated class by netbeans with information about the web service
    private PlanPlusOnlineService service         = null;

    //another generated class by netbeans but this is a property of the service
    //that contains information about the individual methods available.
    private PlanPlusOnline port                   = null;

    private PlanPlusOnlineClient()
    {
        try
        {
            service = new PlanPlusOnlineService();
            port = service.getPlanPlusOnlinePort();
        }
        catch (MalformedURLException ex)
        {
            MessageLog.error(this, ex.getClass().getName(), ex);
        }
    }

    public static  PlanPlusOnlineClient getInstance()
    {
        return _instance;
    }

    public static String getSomethingInteresting(String param)
    {
         //this will call one of the actual methods the web 
         //service provides.
         return port.getSomethingIntersting(param);
    }    

}

希望这对我们有所帮助。我们还应该查看http://www.netbeans.org/kb/60/websvc/
有关Netbeans和Web服务的更多信息。我确信在其他IDE中也是如此。