【问题标题】:Server http:/localhost:8080 requires a user name and a password. The server says: XDB服务器 http://localhost:8080 需要用户名和密码。服务器说:XDB
【发布时间】:2016-01-02 19:49:47
【问题描述】:

我正在尝试访问 localhost:8080,但它显示我需要输入用户名和密码。我记得大约 4 个月前,当我试图开发一个 Web 应用程序并在我的电脑上托管我的域名时,我弄乱了服务器,不幸的是我没有成功。在使用 servlet 时,我正在尝试一些安全功能,直到一段时间我都没有看到这些弹出窗口,要求进行身份验证。

我尝试输入我正在使用的密码,但没有一个有效。无论如何我可以摆脱这个问题吗?

【问题讨论】:

    标签: tomcat server localhost


    【解决方案1】:

    这是http认证。如果有的话,您可以在 users.xml WEB-INF 目录中找到用户名和密码。否则您必须从 web.xml 文件中编辑或删除 security-constraint 元素

    更新 对不起, 我没有注意到XDB。检查 Oracle 和 tomcat 是否使用相同的端口。更新他们中的任何人

    【讨论】:

    • 我此时没有尝试运行任何已部署的应用程序,但我想知道为什么它在我尝试访问 localhost:8080 时弹出
    • 是的,现在已经解决了。问题来自oracle数据库。谢谢大家
    • 请问我有同样的问题,但我没有任何 oracle 数据库我试图删除安全约束,但它并没有解决问题
    • @TesfaZelalem 你是如何解决这个问题的?我也有oracle数据库..
    【解决方案2】:

    其他一些应用程序(如 oracle)正在使用相同的端口号。所以你应该更改apachetomcat/conf/server.xml中的tomcat端口号

    以前的--->

    <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
    

    更新---->

    <Connector port="8088" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
    

    【讨论】:

      【解决方案3】:

      这是因为您的计算机上正在运行一个数据库。 就我而言,它是一个 Oracle 数据库。默认情况下,每次启动计算机时,数据库的服务都会自动启动。

      转到开始>>在程序列表中找到Oracle或任何数据库>>并手动停止数据库。看来是端口冲突了。

      【讨论】:

        【解决方案4】:

        给用户名admin

        密码留空

        【讨论】:

          【解决方案5】:

          在应用程序属性文件中添加用户名和密码。

          添加spring security时,每个http查询都必须通过登录名和密码进行身份验证。

          【讨论】:

            【解决方案6】:

            您可以卸载 WAMP/XAMPP,然后使用默认端口号重新安装。它会正常工作。

            【讨论】:

              【解决方案7】:

              我假设您不能接受卸载并重新安装 Tomcat。 屏幕截图显示了来自浏览器和默认应用程序的基本身份验证挑战屏幕。因此,您很可能已经在 tomcat 上使用 conf/tomcat-users.xml 尝试阅读本指南https://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html#UserDatabaseRealm

              您还可以使用其他几个领域。希望您在开始阅读文档时会记得

              【讨论】:

              • 但是对于我来说,在这个文件中,我已经注释掉了用户、密码 XML 标记,但我仍然收到询问用户名和密码的提示。
              【解决方案8】:

              我遇到了同样的问题,我只是将 jboss7.1 端口从 8080 更改为 9090。它对我来说非常有效。 要更改 jboss7.1 端口,请转到 jboss-as-7.1.0.Final\standalone\configuration 打开 standalone.xml 查找行 &lt;socket-binding name="http" port="8080"/&gt;8080 更改为 9090。保存文件并 重新启动服务器。它应该工作

              【讨论】:

                【解决方案9】:

                即使我也面临同样的问题。 这种情况的可能性可能是两个或多个应用程序/进程使用相同的端口。 在某些情况下,您可以使用不同的端口号来避免此问题,但在其他情况下,您必须在命令提示符的帮助下手动终止进程。

                杀死的命令是, 在您的命令提示符中首先输入此命令

                C:\Users\A611003>任务列表

                在此之后,您可以看到使用进程 ID 运行的进程列表。 例如,

                从中选择您要停止的进程,例如,假设进程 id 304 是您的服务器,而您对此有疑问。 然后输入这个命令。

                C:\Users\A611003>Taskkill /PID 304 /F
                

                现在您可以清理、发布服务器并启动它,这将终止该进程。

                注意:如果您未能在上述命令中添加 /F,它不会执行任何操作。就是强杀。你也可以试试/?查看可用选项列表。

                【讨论】:

                  【解决方案10】:

                  打开文件:

                  WEB-INF -> web.xml
                  

                  就我而言,它如下所示。 :

                  <security-constraint>
                      <web-resource-collection>
                          <web-resource-name>Integration Web Services</web-resource-name>
                          <description>Integration Web Services accessible by authorized users</description>
                          <url-pattern>/services/*</url-pattern>
                          <http-method>GET</http-method>
                          <http-method>POST</http-method>
                      </web-resource-collection>
                      <auth-constraint>
                          <description>Roles that have access to Integration Web Services</description>
                          <role-name>maximouser</role-name>
                      </auth-constraint>
                      <user-data-constraint>
                          <description>Data Transmission Guarantee</description>
                          <transport-guarantee>NONE</transport-guarantee>
                      </user-data-constraint>
                  </security-constraint>
                  

                  删除或评论这些行。

                  【讨论】:

                    【解决方案11】:

                    我刚刚杀死了 Oracle 进程并重新启动了 JBoss。一切都很好:)

                    【讨论】:

                      【解决方案12】:

                      只需将默认端口 8080 更改为类似下面示例的其他端口

                      SQL> begin
                       2   dbms_xdb.sethttpport('9090');
                       3   end;
                       4  /
                      

                      【讨论】:

                      • 为我工作。我实际上正在使用安装在我的计算机中的 tomcat 服务器,我只是想开始使用 spring boot。所以,我从控制面板中删除了 tomcat,但是当我点击 localhost:8080 时,它正在询问用户名和密码。在连接到 sql 后,我在 cmd 中运行了这个 sql 命令。我的问题得到了解决。
                      【解决方案13】:

                      您可以在 {tomcat 安装目录}/conf/tomcat-users.xml 中找到用户名和密码详细信息

                      【讨论】:

                        【解决方案14】:

                        只需更改使用的端口号,例如8000 然后调用 http://localhost:8080

                        【讨论】:

                          【解决方案15】:

                          我认为,在端口 8080 上运行的任何其他服务,如数据库等。

                          请在您的应用程序上配置新端口并在该端口上运行。

                          【讨论】:

                            猜你喜欢
                            • 1970-01-01
                            • 1970-01-01
                            • 2012-02-12
                            • 1970-01-01
                            • 1970-01-01
                            • 2015-01-15
                            • 2018-10-13
                            • 1970-01-01
                            • 2011-05-24
                            相关资源
                            最近更新 更多