在spring boot 2.0.0中设置jvmRoute

对于粘性会话,我需要设置嵌入式tomcat的jvmRoute。 实际上只有一个 System.setProperty(“jvmRoute”, “node1”); 是必需的,但我想设置一个via application.properties可配置属性。 我不知道如何以及何时使用@Value注释属性进行设置。 使用@PostConstruct,如此处所述,它不起作用(至少不在spring boot 2.0.0.RELEASE中) 我到目前为止找到的唯一方法是 @Component public class TomcatInitializer implements ApplicationListener { @Value(“${tomcat.jvmroute}”) private String jvmRoute; @Override public void onApplicationEvent(final ServletWebServerInitializedEvent event) { final WebServer ws = event.getApplicationContext().getWebServer(); if (ws instanceof TomcatWebServer) { final TomcatWebServer tws = (TomcatWebServer) ws; final Context context = (Context) tws.getTomcat().getHost().findChildren()[0]; context.getManager().getSessionIdGenerator().setJvmRoute(jvmRoute); } } } […]

ViewPager + GridView onItemClick

我在ViewPager的布局中有一个GridView(我不确定这是否有所不同)。 inside SampleAdapter for ViewPager{ @Override public Object instantiateItem(ViewGroup container, int position) { View page = null; if (position == 0) { page = getLayoutInflater().inflate(R.layout.layoutone, container, false); } else { page = getLayoutInflater().inflate(R.layout.layouttwo, container, false); GridView grid = (GridView) page.findViewById(R.id.gridview); grid.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) { […]

如何创建可滚动的ResultSet?

我得到了这个简单的代码来从MSSQL Server 2008中检索记录集,由于我设置了ResultSet.TYPE_SCROLL_INSENSITVE,因此必须可以滚动它,与Javadocs中的示例相同: String qry = “SELECT * from tblPeople”; SQLConnection sql = new SQLConnection(); Statement stmt = sql.getConnection().createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs = stmt.executeQuery(qry); 不幸的是,当我想获得像rs.last(); int rowCount = rs.getRow();这样的行数时,我仍然得到了这个Stack Trace rs.last(); int rowCount = rs.getRow(); rs.last(); int rowCount = rs.getRow(); : java.sql.SQLException: ResultSet may only be accessed in a forward direction. at net.sourceforge.jtds.jdbc.JtdsResultSet.checkScrollable(JtdsResultSet.java:304) at […]

从我的java程序中调用Sonar

我在我的localhost上安装了声纳服务器。 我能够运行和分析java项目。 甚至我已经在eclipse上安装了声纳插件。 但我想从我的java项目(如简单的java类)中运行声纳,并应检索声纳结果并能够将其保存在数据库中。 我搜索了教程但无法找到答案。 请任何人都可以提供示例代码或资源,以便我可以获得知识来克服此任务。 import javax.annotation.Resource; import org.sonar.wsclient.Host; import org.sonar.wsclient.Sonar; import org.sonar.wsclient.connectors.HttpClient4Connector; import org.sonar.wsclient.services.*; public class SonarTask1{ public static void main(String[] args) { //public void Hi(){ String url = “http://localhost:9000”; String login = “admin”; String password = “admin”; Sonar sonar = new Sonar(new HttpClient4Connector(new Host(url, login, password))); String projectKey = “java-sonar-runner-simple”; String manualMetricKey […]

如何使用filter执行输出编码以防止XSS?

我在servlet中使用以下代码: protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out=response.getWriter(); response.setContentType(“text/html”); out.println(“”); out.println(“”); out.println(“alert(1)”); out.println(“”); out.println(“”); } 并遵循filter的代码: public class SampleFilter implements Filter { protected FilterConfig config; public void init(FilterConfig config) throws ServletException { this.config = config; } public void destroy() { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws […]

可以为null赋值null或与值类型变量进行比较吗?

在Java中,始终存在原始类型和引用,但不存在值类型。 Project Valhalla的目标之一是探索和孵化特征候选者,如价值类型 。 我想知道是否可以将null赋给值类型变量,或者是否可以将值类型变量与null进行比较。 如果没有,我也想知道原因。

如何在struts2中转换不是SHORT格式的日期?

我知道struts2可以在填充控制器的字段时将字符串转换为Dates,但是,假设日期字符串是SHORT格式,它会这样做。 有没有办法为struts指定不同的格式(例如,’yyyy-MM-dd’)?

如何为JUnit测试设置Loglevel

我在我的课程中使用java日志。 例: public class MyClass { private static Logger logger = Logger.getLogger(MyClass.class.getName()); …. } 当我为该课程编写JUnit测试时,我想将Loglevel设置为’FINE’。 我试过了: @Before public void setup() throws PluginException { Logger.getGlobal().setLevel(Level.FINE); …. } 但这没有效果。 使用Java Logging时,如何在JUnit Test中控制loglevel? 我正在使用Maven运行我的测试。

如何在网页中嵌入Java小程序?

我使用以下代码在网页中嵌入Java小程序, 但问题是,我的applet的类文件位于一个名为environment的包environment ,这意味着我的main.class位于文件夹环境中。 浏览器显示我在使用时无法搜索我的类文件的错误消息 CODE=”main.class” 如何设置它来引用我导出的jar文件中的包中的类文件?

找不到兼容的方法:将对象传递给方法时出错?

我正在尝试为我们拥有的一些旧遗留代码编写junit 下面是我正在编写junit的DataLogger类中的方法,我正在使用jmockit – private Object[] extractMessageObjects(final Object… objects) { Object[] result = new Object[objects.length – 1]; System.arraycopy(objects, 0, result, 0, result.length); return result; } 所以下面的测试应该可行。 对? @Test public void testLogDebugWithStackTrace() { DataLogger logger = DataLogger.getInstance(ClientTest.class); Object obj[] = new Object[] {1}; Deencapsulation.invoke(logger, “extractMessageObjects”, obj); } 但我得到例外 – No compatible method found: extractMessageObjects(java.lang.Integer) 我在这里做错了吗?