第一个confluence servlet插件,ClassCastException问题

2023-12-25

我正在尝试为 Confluence 制作一个“hello world”servlet 插件。在 atlassian-plugin.xml 中,我有

<servlet name="testservlet" key="testservlet" class="com.test.confluence.plugins.testservlet.TestServlet">
    <description>A test servlet.</description>
    <url-pattern>/testservlet</url-pattern>
</servlet>

在 pom.xml 中,我有

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
</dependency>

这是servlet

package com.test.confluence.plugins.testservlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class TestServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("Hello World");
        out.close();
    }
}

它构建并安装,但是当我点击 /confluence/plugins/servlet/testservlet 处的 servlet 时,我得到一个未找到的页面,并且出现以下 ClassCastException:

[INFO] [talledLocalContainer]  -- url: /confluence/plugins/servlet/testservlet | userName: admin
[INFO] [talledLocalContainer] com.atlassian.util.concurrent.LazyReference$InitializationException: java.lang.ClassCastException: com.test.confluence.plugins.testservlet.TestServlet cannot be cast to javax.servlet.http.HttpServlet

编辑:这是完整的堆栈跟踪:

[INFO] [talledLocalContainer] 2011-08-12 09:56:57,910 ERROR [http-1990-5] [atlassian.plugin.servlet.DefaultServletModuleManager] getServlet Unable to
create servlet
[INFO] [talledLocalContainer]  -- url: /confluence/plugins/servlet/testservlet | userName: admin
[INFO] [talledLocalContainer] com.atlassian.util.concurrent.LazyReference$InitializationException: java.lang.ClassCastException: com.test.confluence.p
lugins.testservlet.TestServlet cannot be cast to javax.servlet.http.HttpServlet
[INFO] [talledLocalContainer]   at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:148)
[INFO] [talledLocalContainer]   at com.atlassian.util.concurrent.LazyReference.get(LazyReference.java:111)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.DefaultServletModuleManager.getServlet(DefaultServletModuleManager.java:313)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.DefaultServletModuleManager.getServlet(DefaultServletModuleManager.java:146)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.ServletModuleContainerServlet.service(ServletModuleContainerServlet.java:41)
[INFO] [talledLocalContainer]   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)
[INFO] [talledLocalContainer]   at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:25)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)
[INFO] [talledLocalContainer]   at com.atlassian.labs.httpservice.resource.ResourceFilter.doFilter(ResourceFilter.java:59)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.
java:77)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.
java:63)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.atlassian.confluence.security.websudo.MessagesDecoratorFilter.doFilter(MessagesDecoratorFilter.java:49)
[INFO] [talledLocalContainer]   at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
[INFO] [talledLocalContainer]   at com.atlassian.confluence.util.profiling.ProfilingPageFilter.parsePage(ProfilingPageFilter.java:84)
[INFO] [talledLocalContainer]   at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:54)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.
java:77)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.
java:63)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.atlassian.confluence.util.LoggingContextFilter.doFilter(LoggingContextFilter.java:40)
[INFO] [talledLocalContainer]   at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.atlassian.seraph.filter.SecurityFilter.doFilter(SecurityFilter.java:213)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.atlassian.security.auth.trustedapps.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:98
)
[INFO] [talledLocalContainer]   at com.atlassian.confluence.util.AbstractBootstrapHotSwappingFilter.doFilter(AbstractBootstrapHotSwappingFilter.java:3
0)
[INFO] [talledLocalContainer]   at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.atlassian.seraph.filter.BaseLoginFilter.doFilter(BaseLoginFilter.java:144)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)
[INFO] [talledLocalContainer]   at com.atlassian.oauth.serviceprovider.internal.servlet.OAuthFilter.doFilter(OAuthFilter.java:71)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.
java:77)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.
java:63)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.atlassian.confluence.util.ClusterHeaderFilter.doFilter(ClusterHeaderFilter.java:34)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.atlassian.johnson.filters.AbstractJohnsonFilter.doFilter(AbstractJohnsonFilter.java:72)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:170
)
[INFO] [talledLocalContainer]   at com.atlassian.spring.filter.FlushingSpringSessionInViewFilter.doFilterInternal(FlushingSpringSessionInViewFilter.ja
va:29)
[INFO] [talledLocalContainer]   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.atlassian.confluence.util.ConfluenceErrorFilter.doFilter(ConfluenceErrorFilter.java:22)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.atlassian.util.profiling.filters.ProfilingFilter.doFilter(ProfilingFilter.java:99)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.atlassian.confluence.core.datetime.RequestTimeThreadLocalFilter.doFilter(RequestTimeThreadLocalFilter.java:35)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.atlassian.gzipfilter.GzipFilter.doFilterInternal(GzipFilter.java:81)
[INFO] [talledLocalContainer]   at com.atlassian.gzipfilter.GzipFilter.doFilter(GzipFilter.java:51)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.atlassian.core.filters.cache.AbstractCachingFilter.doFilter(AbstractCachingFilter.java:33)
[INFO] [talledLocalContainer]   at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)
[INFO] [talledLocalContainer]   at com.atlassian.confluence.extra.webdav.servlet.filter.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:43)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.
java:77)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.
java:63)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.atlassian.confluence.web.filter.validateparam.RequestParamValidationFilter.doFilter(RequestParamValidationFilte
r.java:58)
[INFO] [talledLocalContainer]   at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.atlassian.confluence.plugin.servlet.filter.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:71)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.atlassian.confluence.web.filter.LanguageExtractionFilter.doFilter(LanguageExtractionFilter.java:52)
[INFO] [talledLocalContainer]   at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.atlassian.confluence.util.RequestCacheThreadLocalFilter.doFilter(RequestCacheThreadLocalFilter.java:25)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.atlassian.core.filters.encoding.AbstractEncodingFilter.doFilter(AbstractEncodingFilter.java:41)
[INFO] [talledLocalContainer]   at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.atlassian.core.filters.HeaderSanitisingFilter.doFilter(HeaderSanitisingFilter.java:44)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at com.atlassian.confluence.servlet.FourOhFourErrorLoggingFilter.doFilter(FourOhFourErrorLoggingFilter.java:65)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
[INFO] [talledLocalContainer]   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
[INFO] [talledLocalContainer]   at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
[INFO] [talledLocalContainer]   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
[INFO] [talledLocalContainer]   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
[INFO] [talledLocalContainer]   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
[INFO] [talledLocalContainer]   at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
[INFO] [talledLocalContainer]   at java.lang.Thread.run(Thread.java:662)
[INFO] [talledLocalContainer] Caused by: java.lang.ClassCastException: com.test.confluence.plugins.testservlet.TestServlet cannot be cast to javax.ser
vlet.http.HttpServlet
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.descriptors.ServletModuleDescriptor.getModule(ServletModuleDescriptor.java:50)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.DelegatingPluginServlet.<init>(DelegatingPluginServlet.java:33)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.DefaultServletModuleManager$LazyLoadedServletReference.create(DefaultServletModuleMana
ger.java:430)
[INFO] [talledLocalContainer]   at com.atlassian.plugin.servlet.DefaultServletModuleManager$LazyLoadedServletReference.create(DefaultServletModuleMana
ger.java:416)
[INFO] [talledLocalContainer]   at com.atlassian.util.concurrent.LazyReference$Sync.run(LazyReference.java:316)
[INFO] [talledLocalContainer]   at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:142)
[INFO] [talledLocalContainer]   ... 130 more

依赖于servlet-api应始终声明为provided,因为在运行时它已经由 servlet 容器提供了:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
</dependency>

否则,您将获得由不同类加载器加载的两组 servlet API 类,从而不可避免地出现类转换问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第一个confluence servlet插件,ClassCastException问题 的相关文章

  • 从插件设置 Maven 属性

    我在这里阅读了一些关于如何从 Maven 插件设置属性的问题 其中大多数讨论了应用程序的版本号 似乎没有简单的方法可以做到这一点 我发现的最佳解决方案是拥有一个从插件更新的 filter properties 文件 并由主 pom 文件使用
  • 如何为Spring Boot中的所有控制器指定前缀?

    我有控制器映射到 user and order RestController RequestMapping users public class UserController RestController RequestMapping or
  • 确定列表编号是否连续

    我在 Java 工作 我有一个无序列表 包含 5 个数字 范围从 0 100 没有重复 我想检测其中 3 个数字是否连续且没有间隙 例子 9 12 13 11 10 true 17 1 2 3 5 true 19 22 23 27 55 f
  • 如何将 Struts 2 与 Velocity 和 Tiles 结合使用

    有人能够获得与 struts 2 一起使用的速度和图块吗 我在网上查找示例或教程时遇到一些问题 从我从邮件列表中收集到的信息来看 这似乎根本不可能 但邮件已经很旧了 https struts apache org docs tiles pl
  • 如何在我的 HttpClient 执行器中遵循单一职责原则?

    我在用RestTemplate http docs spring io spring docs current javadoc api org springframework web client RestTemplate html as
  • 将 Java 3D 坐标转换为 2D 屏幕坐标

    我正在使用一个名为 Walrus 的 Java 3D 应用程序 该应用程序用于显示有向图 该代码已经具有突出显示节点并在给定其屏幕坐标的情况下在图形中相邻绘制标签的功能 旋转屏幕后 该节点不再突出显示 我所拥有的是 3D 中的节点坐标 我需
  • 堆内存与对象内存

    根据一篇关于Java内存和特性的论文 内存分数分为两种类型 堆内存 即应用程序在运行时消耗的内存 对象内存 即程序中使用的各种对象分配的内存 例如整数和字符串等 他们的意思是stack当他们说时的记忆object记忆 或者它们是什么意思 很
  • 抽象方法实现与抽象方法重写。这两个对于抽象类意味着相同吗?

    我几乎要采取Java SE 8 程序员我 exam 1Z0 808 我正在使用这个学习指南 https www selikoff net java oca 8 programmer i study guide https www selik
  • 无法在android中使用retrofit发出@Post请求

    我正在学习如何在 android 中使用改造 但是每当我尝试从互联网检索数据时 我的应用程序不会返回任何内容我的响应没有成功 我不知道如何修复当前我正在尝试发布的错误并使用此 URL 检索数据https jsonplaceholder ty
  • 公共领域有哪些替代方案?

    我正在用 java 编写一个游戏 正如问题标题建议的那样 我在类中使用公共字段 暂且 据我所知 公共领域很糟糕 我有一些理解其中的原因 但如果有人能澄清为什么你不应该使用它们 那将不胜感激 问题是 从我所看到的来看 这似乎是合乎逻辑的 是使
  • 使用 java 中的准备好的语句插入自定义 SQL 类型

    我有一些自定义类型 它们基本上都是枚举 以下是它们的外观示例 CREATE TYPE card suit AS ENUM spades clubs hearts diamonds 我在 Java 中有一些准备好的语句 看起来像这样 Setu
  • Spring 非托管 bean 的依赖注入

    我有一个非托管的 JPA 域类 它是通过实例化的new操作员 UserAccount account new UserAccount userRepository save account In my UserAccount类 我有一个be
  • JList 类型不采用参数类型

    当我尝试编译一些代码时 我不断收到这些错误 CCC java 21 type javax swing JList does not take parameters JList
  • 在大画布上滚动

    我需要一些帮助来了解滚动绘制到 Android 画布上的项目的基础知识 假设我想创建一个时间线 其中 0 处的时间是可视化的顶部 并且随着时间的增加 时间线继续呈现在上一个点下方 如果我想在 Android 上渲染它 我知道我可以通过重写
  • 有没有办法防止 Spring Boot 覆盖 bean?

    与春天的抽象可刷新应用程序上下文 http docs spring io spring docs current javadoc api org springframework context support AbstractRefresh
  • 如何使用JSqlParser向sql添加where条件?

    我想用JSqlParser向sql添加where条件 例如 Before select from test table where a 1 group by c After select from test table where a 1
  • 无法验证 serde:org.openx.data.jsonserde.jsonserde

    我编写了这个查询来在配置单元上创建一个表 我的数据最初是 json 格式 所以我已经下载并构建了 serde 并添加了它运行所需的所有 jar 但我收到以下错误 FAILED Execution Error return code 1 fr
  • 如果垃圾收集器没有删除未引用的对象,它们还能运行吗?

    如果一个对象正在等待垃圾收集 但包含一个在该对象的最后一个引用更改时正在运行的线程 那么该线程是否仍会运行并且代码是否仍会执行 那么您是否可能有一堆应该删除的幽灵对象 但它们对您的代码产生了影响 你如何防止这种情况发生 有没有办法让对象知道
  • java 更新进度条

    我有一个 JFrame 和以下组件 JButton jButton1 Progress Bar ProgressBar 及其公共静态 JLabel 状态及其公共静态 单击按钮时会执行不同的语句 我想在每个语句后更新我的进度条 这是我的代码
  • 只有创建视图层次结构的原始线程才能触摸其视图。在安卓上[重复]

    这个问题在这里已经有答案了 我只是一个初学者 所以请原谅我问一个可能愚蠢的问题 我不明白只有创建视图层次结构的原始线程才能触摸其视图的含义 请有人告诉我为什么会发生此错误以及如何解决此问题 ThankYou 这是我的班级 public cl

随机推荐

  • 我想测试一个私有方法 - 我的设计有问题吗? [复制]

    这个问题在这里已经有答案了 因此 我对软件测试非常陌生 并且正在考虑向我的一个应用程序添加一些测试 我有一个公共方法 addKeywords 它一路上调用一个私有方法removeInvalidOperations 这个私有方法调用外部 AP
  • AngularJs - ngRepeat 带有返回新对象的过滤器

    我正在尝试对过滤器中的对象应用转换 这会导致返回一组新对象 这是因为我想在应用转换后过滤对象并显示转换结果 然而 我最终得到了无限的摘要 因为我显示的对象与我放入的对象不同 当比较它们时 ids 我解决这个问题的想法如下 使用类似的跟踪表达
  • 谷歌地图发布密钥的 SHA1 显示一些加密文本

    我正在使用谷歌地图 在调试模式下 这真是太棒了 对于发布模式 我尝试从我的 windows10 hp probook 获取发布 SHA1 密钥 但我得到了一些加密文本而不是 SHA1 我的命令如下 C Program Files Java
  • GetSupportActionBar 返回 null

    当我开始第二个 Activity 后 就没有 ActionBar 了 当我调用 GetSupportActivity 时 它返回 null 为什么 我有 minSdkVersion 10 和 targetSdkVersion 15
  • 在 Haxe 中传递任意函数参数列表

    在 ActionScript 中我可以使用 在函数声明中 因此它接受任意参数 function foo args void trace args length 然后我可以调用传递数组的函数 foo apply this argsArray
  • JS 中的动态 import() 文件

    我需要导入标记文件动态切片文件的一部分并将结果添加到变量并在我的 React 应用程序中渲染结果 import changelog md then 我试图这样做render 具有所有逻辑的方法 但我有问题 我需要在哪里导入它 在类中或外部
  • Excel 数据透视表 - 计算总和的平均值

    我确信这很简单 但是如何获得数据透视表来显示计算出的字段总和的平均值 在简化的示例中 我过滤掉了资金 x1 数据透视表显示了每人剩余资金的总和 现在我如何获得平均值按人 所以 手动计算 3300 3 我尝试使用计算字段 但无法弄清楚它是如何
  • Python xpath 不工作?

    好吧 这开始让我有点抓狂了 我已经尝试了几个 Python 的 xml xpath 库 但无法找到一种简单的方法来获取臭味十足的 标题 元素 最新的尝试如下所示 使用 Amara def view req url req content t
  • 该方法必须返回 boolean(Java) 类型的结果

    这是我的代码 boolean checkHit2 if cx lt 0 cx gt 640 return true if cy lt ground int cx return false if cx lt blue 15 cx gt blu
  • 如何在 C 中的 3d 数组中使用 memcpy

    我有一个 3 维数组int32 t x 1024 4 256 我需要将数组的所有元素复制到相同类型和大小的另一个数组int32 t y 1024 4 256 我可以用吗memcpy y x sizeof x 之后我可以访问数组的元素y与x
  • 将文件保存到 MyDocuments + 应用程序文件夹

    我正在尝试将 NET 应用程序设置文件保存到用户的 MyDocument MyApplication 文件夹 但我不知道如何检查现有文件夹 文件 并在保存时创建或附加文件夹 文件 我不想打开 saveFileDialog 因为我需要该文件位
  • SSE 错误 - 使用 m128i_i32 定义 __m128i 变量的字段

    定义一个 m128i变量以这种方式 m128i a a m128i i32 0 65000 我收到以下错误 错误 请求 a 中的非类成员 m128i i32 类型 m128i 又名 vector 2 long long int a m128
  • XPath 查找具有特定子节点的所有元素

    您能帮我找到下面示例中具有子元素 c 的所有元素 b 吗 a b b b b a
  • spring 拦截器从未被调用

    我有以下拦截器 Component public class ExternalLinkInterceptor extends HandlerInterceptorAdapter private static final Logger log
  • 使用 sse 指令进行复杂的 Mul 和 Div

    通过 SSE 指令执行复杂的乘法和除法是否有益 我知道使用 SSE 时加法和减法表现更好 有人可以告诉我如何使用 SSE 执行复杂的乘法以获得更好的性能吗 为了完整起见 可以下载 英特尔 64 和 IA 32 架构优化参考手册 here h
  • 我是否必须取消订阅ActivatedRoute(例如参数)可观察量?

    我发现很多例子ActivatedRoute可观察到的像params or url已订阅但未取消订阅 constructor private route ActivatedRoute ngOnInit this route params co
  • Amazon S3 - 如何下载匿名用户拥有的对象?

    我有一个示例网页 允许匿名用户上传对象并在我的 S3 存储桶中创建文件夹 不幸的是 在执行此操作之前 我没有设置任何特定的存储桶策略或 ACL 现在我遇到一个问题 匿名用户创建了一个文件夹并上传了我 作为根用户 无法下载或访问的对象 我计划
  • 基于referer的nginx条件路由

    我需要根据 http 请求来源路由流量 我有两个环境 我们需要使用 http referer 将 us en 的每个 http 请求重定向到环境 1 将其他请求重定向到环境 2 基于位置的重定向有效 location us en proxy
  • 如何使用 R 登录并从 aspx 网页下载文件

    我正在尝试自动下载收入动态面板研究文件可在这个网页 http simba isr umich edu Zips ZipMain aspx使用 R 单击这些文件中的任何一个都会使用户进入此登录 认证页面 http simba isr umic
  • 第一个confluence servlet插件,ClassCastException问题

    我正在尝试为 Confluence 制作一个 hello world servlet 插件 在 atlassian plugin xml 中 我有