2014-04-23 26 views
1

喜Markloggers在那里,我可以使用Eclipse XQDT调试Marklogic模块/ XQuery的?

我现在正与Marklogic个月的轿跑车,深化发展的XQuery,模块的ML应用服务器等等等等,我用日食了很多应用程序,我有XQDT启动并运行了几个marklogic服务器。我们也使用控制台。

我怀念的是一个调试功能......在Eclispe的与XQDT我不能得到的调试功能工作?

我需要的是一个非常干净的方式来快速测试和开发modelules和功能... 这是我从ML例如文档基本lib目录下:

xquery version "1.0-ml"; 

module namespace lib = 'http://www.example.com/lib'; 

declare function lib:user() 
{ 
xdmp:get-current-user() 
}; 

我这是我的XQDT项目在eclipse中,我已经在本地设置了marklogic XDBC服务器,并且它工作正常。

现在我想在Eclipse的XQDT项目再次使用上述模块从文件。但是,如果没有要到模块上传到数据库等等等等的步骤...:

(: XQuery main module :) 

import module namespace lib = 'http://www.example.com/lib' at 'lib.xq'; 

lib:user() 

给出:

XDMP-MODNOTFOUND: (err:XQST0059) Module /lib.xq not found 

问题1:有没有办法找到模块,但不把它在一个模块根?在一个XQDT项目中说,我可以从一个XQDT项目中获取资源,但是我无法获得它的工作...

问题2:我可以对本地Marklogic服务器执行任意的xquery,但是如果我在任何地方设置了调试标志在XQDT项目XGY文件并按调试按钮,我得到一个弹出说“调试引擎未正确配置”。谁能给我解释一下,如果它可以使用在eclipse XQDT调试选项与Marklogic 7? 问候,

雨果

回答

0

这是最好限制自己一个问题,每SO发布。毕竟你只能接受一个答案。

现在我想在eclipse中的XQDT 项目中再次使用上述模块。但没有去上传模块 到db等的步骤

这是一个问题。您可以直接评估即席查询。但是如果它引用一个库模块,那么该库模块需要可用于服务器。无论如何,你将不得不将它复制到服务器上,所以尽早做。我自己不使用IDE,但是你不能为此设置它吗?

问题1:有没有办法找到模块而不将它放入模块根目录?

不是最广义的“模块根”,没有。 https://docs.marklogic.com/guide/app-dev/import_modules的文档讨论了这是如何工作的。无论如何,您需要将库模块提供给MarkLogic。

我不能满足你的最后一个问题。我不使用IDE,即使我做了,我可能不会使用调试器。而是我xdmp:log消息到ErrorLog.txt,偶尔我会在我的代码中种植一个断点,如error()调用。

+0

好的,那么你使用任何其他工具,然后文本编辑器呢?对于python开发工作,我使用了很多eclipse,并且我无法想象不使用调试器,因此认为这些工具对开发xquery代码会有很大的帮助...? –

+1

默认情况下,XQuery变量是不可变的。这使得关于程序流程的理由变得更加容易,因为您不必担心功能会改变程序状态。所以我通常不需要任何东西比文本编辑器,'xdmp:log',偶尔还有'fn:error'。它有助于使用强大的打字和遵循其他良好做法:http://blakeley.com/blogofile/archives/518/和http://blakeley.com/blogofile/2012/09/28/external-variables-%28code-审查,-part-ii%29 /可能会有所帮助。 – mblakele