Java Web Services API,但是我无法在服务器上运行JVM
我正在尝试使用来自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中也是如此。