2011-06-01 82 views
10

我有一个Java Web Services项目,它是在NetBeans的较早版本中创建的,并且我在几个月内没有访问过它,所以我的路径和已安装的库是不同的。如何在NetBeans中引用库?

当我尝试打开该项目,我得到一个“解决引用问题”的对话框,并且两个参考的问题列出:

"metro" library could not be found 
"JAX-WS-ENDORSED" library could not be found 

我有JDK 6 Update 25 with NetBeans 7.0全新安装,并且正在运行Windows 7。

我可以采取哪些措施来解决这个问题?我甚至不知道从哪里开始,因为我迄今采取的每种方法都没有让我获得任何地方。

注意: JAX-WS-ENDORSED没有出现在我的库列表中,所以我无法删除它。隐藏的东西引用它。我如何找到这个?

+0

类似的问题在这里。 JAX-WS-ENDORSED出现在我的库列表中,但添加它并没有帮助... – 2013-03-11 14:35:13

回答

11

我刚刚遇到此问题,并从http://netbeans.org/bugzilla/show_bug.cgi?id=187145找到一些帮助。显然,Netbeans将在创建新的Web服务时创建JAX-WS-ENDORSED库。所以去文件>新文件,选择Web服务> Web服务客户端,并填写虚拟值(这可以在一次性项目中完成)。然后,该客户端可以被删除,NetBeans将创建与下面的类路径条目库:

java/modules/ext/jaxws22/api/jaxws-api.jar 
ide/modules/ext/jaxb/api/jaxb-api.jar 

这是相对于你的Netbeans在OS X上安装目录(将位于目录/内的资源/ Netbeans的。应用程序)。或者,您可以使用上面的条目手动创建库。

这只需要做一次,因为该库将被添加到Netbeans全局库列表中。

2

Netbeans维护一组库,它们只是一个管理相关jar文件组的简便方法。由clickong开始工具>。你会看到库管理器窗口。

Library Manager

你会看到添加自己的图书馆,如果你已经下载jar文件的选项。如果你没有看到你正在寻找的图书馆,你可以下载它们并添加你自己。一旦在Netbeans中存在库,您可以访问Project Explorer窗口并右键单击项目的选项卡。选择添加库,您将有机会添加添加到库管理器中的库。

+1

首先,我该如何知道在这里使用哪些库?我只能猜测“metro”和“JAX-WS-ENDORSED”是指什么。我对“metro”没有任何想法,但我认为“JAX-WS-ENDORSED”意味着我应该使用JAX-WS 2.2。我尝试添加JAX-WS 2.2作为参考,并且仍然得到相同的错误。 – 2011-06-01 21:21:39

+0

您可能必须从项目中删除JAX-WS-ENDORSED库。在Project Explorer中的库列表下,您应该看到它列出。右键点击并删除。至于地铁,我不能确定,但​​有这个地铁的引用:http://metro.java.net/这是一个Web服务的图书馆,所以我猜这是正确的。下载它,添加一个库,然后将库添加到您的项目中。 – 2011-06-01 21:30:21

+0

好吧,我得到了地铁库的引用,右键单击库并选择属性,我能够创建“创建”库,并添加了地铁的jar文件,这似乎工作。但是,我无法在任何地方找到JAX-WS-ENDORSED。我在库和属性对话框中搜索,没有看到它。任何其他可能会使它认为需要此参考的地方?我知道它需要的jar文件的位置,但我找不到任何地方的“JAX-WS-ENDORSED”引用,所以我无法删除它或更正它。 – 2011-06-01 22:00:12

0

你可能想要右键点击你的项目,去属性 - >库。

删除JAX-WS认可的库,并尝试使用JAX-WS 2.2

同时删除地铁,然后尝试在麦德龙2.0

这可能解决您的问题。在你的web服务引用

你也可以右键单击并选择

编辑Web服务属性

然后wsimport的选项选项卡上看到,如果xendorsed设置为true。

UPDATE

您可能需要关闭NetBeans和然后再次打开它,它可能工作。我遇到类似的问题,我只是这样做,它的工作。

唯一的区别是,我也添加了JAXB 2.2库,但这是因为我试图解决编译错误。

2

如果仍然需要,那么在netbeans 7中打开一个netbeans 6.9项目时,我也会遇到同样的情况。使用库窗口无法解决'jaxb-endorsed'(在我的例子中是jaxb而不是jaxws)引用。

我在nbproject/project.properties文件中找到了endorsed.classpath属性。 我仍然不确定它的目的是什么,但是在这个属性中我发现了对jaxb-endorsed.classpath的错误引用,所以我删除了,关闭netbeans并再次打开,并且引用问题已经消失。

我已经将Jaxb 2.2库添加到了我的项目中,所以它对我对project.properties所做的修改工作良好。

我希望它有帮助。

1

我有一个类似的问题:不要删除JAX-WS-ENDORSED - 提醒我downvote。我不得不去导入项目>解决参考 问题对话框>从那里删除指向旧的NB文件夹的引用 - 图片:enter image description here

然后创建威廉斯科特建议的一次性web服务,然后添加新创建的罐子:enter image description here

0

我有同样的问题,并修复它通过安装在NetBeans肥皂和Web服务和Web服务resful插件

4

最好的解决方法是编辑project.properties文件并替换下面一块码。

原始属性:endorsed.classpath = \ $ {libs.JAX-WS-ENDORSED.classpath}

替换为:endorsed.classpath = \ $ {lib.JAX-WS 2.2.classpath}

在早期版本的Netbeans中,libs位置有JAX-WS-ENDORSED库。在lib文件夹

新版本有JAX-WS 2.2库的Netbeans的

** 一切顺利 **

+0

这一个为我工作:) – 2015-11-11 19:21:27

+0

为我工作 – elrado 2016-06-13 11:43:05

0

我解决这个问题:

  1. 反安装NetBeans的。
  2. 删除HOME/.netbeans和HOME /。NBI
  3. 然后安装NetBeans再次
+0

不起作用。事实上,这是一个很好的方式来完成一个完美的安装,并使它开始与JAX错误失败。 – 2014-05-22 15:25:01

0

旧线,不同的和有效的解决方案。我刚搬来的一些项目,从一个系统到另一个和得到这个错误。使用NetBeans v7.3 +,转至工具>插件,可用插件,然后搜索“SOAP”。你应该看到“SOAP Web服务”。加载这个库时,你会得到JAX-WS-ENDORSED库。重新启动NetBeans,您应该能够获得Clean Build。

加载此软件包会引入许多其他库。在重新启动IDE时,您可能会收到其他软件包现在具有可用更新的通知。