从XML数据库到XQuery的Java Web服务
这是我生命中的第一次编程。 现在我必须用Java创建Web服务(Rest,但当Soap适合这种情况时,我尝试Soap方法)。 从自己的FTP服务器中的XML数据库中提取数据并返回 使用Java或其他方法将XML数据转换为XQuery从XML数据库到XQuery的Java Web服务,java,xml,web-services,rest,xquery,Java,Xml,Web Services,Rest,Xquery,这是我生命中的第一次编程。 现在我必须用Java创建Web服务(Rest,但当Soap适合这种情况时,我尝试Soap方法)。 从自己的FTP服务器中的XML数据库中提取数据并返回 使用Java或其他方法将XML数据转换为XQuery XML数据库→RESTWeb服务(XQuery)→XML数据库返回 或者我想选择更简单的方式 XML数据库:文本、图片、URL、名称、年份 我花了几周时间尝试创建web服务。 安装软件和插件,并检查是否运行所有软件和插件 BaseX, Tomcat 7.0.62本地
XML数据库→RESTWeb服务(XQuery)→XML数据库返回 或者我想选择更简单的方式 XML数据库:文本、图片、URL、名称、年份 我花了几周时间尝试创建web服务。 安装软件和插件,并检查是否运行所有软件和插件 BaseX, Tomcat 7.0.62本地主机, 泽西岛1.19, Eclipse 4.4 Luna和插件, JAVA 1.8, JDK 8, JAXB 我阅读教程,例如: 但它没有起作用。我得到以下例外:
enter code here
`javax.servlet.ServletException: Servlet.init() for servlet Jersey REST Service threw exception
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Thread.java:745)`
根本原因:
enter code here
`com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes.
com.sun.jersey.server.impl.application.RootResourceUriRules.<init>(RootResourceUriRules.java:99)
com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1359)
com.sun.jersey.server.impl.application.WebApplicationImpl.access$700(WebApplicationImpl.java:180)
com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:799)
com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:795)
com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193)
com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:795)
com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:790)
com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:509)
com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:339)
com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:605)
com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:207)
com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:394)
com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:577)
javax.servlet.GenericServlet.init(GenericServlet.java:158)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Thread.java:745)`
在此处输入代码
`com.sun.jersey.api.container.ContainerException:ResourceConfig实例不包含任何根资源类。
com.sun.jersey.server.impl.application.RootResourceUriRules.(RootResourceUriRules.java:99)
com.sun.jersey.server.impl.application.WebApplicationImpl.\u initiate(WebApplicationImpl.java:1359)
com.sun.jersey.server.impl.application.WebApplicationImpl.access$700(WebApplicationImpl.java:180)
com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:799)
com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:795)
com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193)
com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:795)
com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:790)
com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:509)
com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:339)
com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:605)
com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:207)
com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:394)
com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:577)
init(GenericServlet.java:158)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
run(Thread.java:745)`
我在寻找有用的资源来帮助我解决这个问题时遇到了问题,我希望您能就如何继续提供建议。不清楚Java是真正的需求,还是您认为需要的技术。如果可以不使用它,可以查看本机XML数据库。对于开源,请查看eXist或BaseX。它们都有自己的HTTP绑定机制,甚至还有REST服务库和框架 这东西很硬。通常不适合初学者。你需要有人的帮助,比如教授或试一下topcoder可能会否决你的问题,但请不要因为我们筛选问题的方法很简单而气馁。所以首先欢迎来到So!不幸的是,你的问题是非常不清楚你想实现什么,为什么你要做你描述的事情。听起来你好像迷路了,我觉得你的问题很不具体,可能不适合这么简单。@dirkk这是真的。因为我不确定Web服务以及如何创建Web服务。我刚才已经说过“Web服务可以将计算机连接到计算机”。我现在必须创建Web服务。另外,我对stackoverflow的使用不太了解。你可能想看看这本初学者指南,也许这可以让你开始:但是,我觉得你的目标太高了,应该从编程的基础开始,而不是坚持你必须实现web服务。无论谁需要这个,都应该找一个有经验的人来做这件事……特别是看看RESTXQ(),一种构建REST应用程序的XQuery技术,这正是您的用例。使用basex,如果下载zip版本(),您只需启动
basexhttp
,就可以在localhost:8984
上获得一个示例REST应用程序。我怀疑这会变得更容易…@dirkk非常感谢您提供更多信息。我检查网页并重试!我能问更多关于新方法的问题吗?@Florent谢谢你的建议。 我是说,XML数据库→(XML)→RESTWeb服务→(XQuery)→XMLDB返回,所以我认为我需要Java。我检查是否也存在BaseX@dirkk我阅读了链接和。但我需要更多的解释,比如URL。我不明白,我该如何为我的案例创建应用程序(通过web服务连接XML数据库)。谢谢。如果有什么事情你做不到,最好是提出一个关于你做不到的事情的新问题,而不是在评论中简单地说一句“我不明白”。