Java http 401用于运行时的Spring教程;蚂蚁名单“;

Java http 401用于运行时的Spring教程;蚂蚁名单“;,java,tomcat,ant,Java,Tomcat,Ant,我厌倦了谷歌搜索 从命令行运行“ant list”时,我得到了这个stacktrace: /home/tgh/workspace/FiLTH/build.xml:138: java.io.IOException: Server returned HTTP response code: 401 for URL: http://localhost:8080/manager/html/list at sun.net.www.protocol.http.HttpURLConnection.getInpu

我厌倦了谷歌搜索

从命令行运行“ant list”时,我得到了这个stacktrace:

/home/tgh/workspace/FiLTH/build.xml:138: java.io.IOException: Server returned HTTP response code: 401 for URL: http://localhost:8080/manager/html/list
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1436)
at org.apache.catalina.ant.AbstractCatalinaTask.execute(AbstractCatalinaTask.java:230)
at org.apache.catalina.ant.AbstractCatalinaTask.execute(AbstractCatalinaTask.java:150)
at org.apache.catalina.ant.ListTask.execute(ListTask.java:51)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:390)
at org.apache.tools.ant.Target.performTasks(Target.java:411)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1397)
at org.apache.tools.ant.Project.executeTarget(Project.java:1366)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1249)
at org.apache.tools.ant.Main.runBuild(Main.java:801)
at org.apache.tools.ant.Main.startAnt(Main.java:218)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
以下是我的build.xml:

以下是tomcat-users.xml的内容:

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="tomcat"/>
<role rolename="role1"/>

<user username="tomcat" password="s3cret" roles="manager-gui"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>


有人知道发生了什么吗?谢谢

正如灰胡子极客401所说,这显然意味着授权问题。 您将需要配置管理员角色和对tomcat的访问权限,从您的tomcat-users.xml我可以看到两个问题 1) tomcat用户已经定义了两次 2) 没有定义为“经理”的角色

我认为您应该像tomcat-users.xml一样

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>

<user username="tomcat" password="s3cret" roles="manager-gui,manager"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>

我不确定您将如何使用manager gui、manager脚本、manager jmx,但出于安全目的,您还应删除不必要的用户“同时”和“角色1”


要配置manager访问,您可以参考tomcat,您需要在tomcat-users.xml中进行如下配置

<user name="<username>" password="<password>" roles="manager-script,manager-gui,manager,manager-jmx"/>


HTTP 401表示身份验证失败。乍一看,我猜问题在于您定义了两个“tomcat”用户。它现在正在处理一个简单的tomcat-users.xml文件,如下所示:
(很抱歉格式错误)谢谢!
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>

<user username="tomcat" password="s3cret" roles="manager-gui,manager"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
<user name="<username>" password="<password>" roles="manager-script,manager-gui,manager,manager-jmx"/>