这不是重复引用的问题,因为它是特定于Spring的.无论谁添加了(事实发生3年后!)都没有费心去阅读问题或评论帖子,看看真正的答案是什么.接受的答案并不是答案,但答案的作者从未回过头来编辑它,就像我问的那样.
鉴于下面的restful方法,Spring 3.1给出了400错误,"客户端发送的请求在语法上是不正确的()".当token
参数包含URL编码的斜杠(%2F)时,例如" https://somewhere.com/ws/stuff/lookup/resourceId/287559/token/R4o6lI%2FbBx43/userName/jim "没有%2F一切正常精细.第三方已经在调用此服务(当然!)因此我至少在短期内无法更改发送的内容.有关如何在服务器端解决此问题的任何想法?
这个问题在https://jira.springsource.org/browse/SPR-8662中得到了很好的描述,尽管这个问题与UriTemplate有关,我没有使用它,我可以说.
@RequestMapping("/ws/stuff/**")
@Controller
public class StuffController {
@RequestMapping(value = "/ws/stuff/lookup/resourceId/{resourceId}/token/{token}/userName/{userName}", method = RequestMethod.GET)
public @ResponseBody
String provisionResource(@PathVariable("resourceId") String resourceId, @PathVariable("token") String token, @PathVariable("userName") String userName, ModelMap modelMap,
HttpServletRequest request, HttpServletResponse response) {
return handle(resourceId, userName, request, token, modelMap);
}
}
Run Code Online (Sandbox Code Playgroud)
注意:这是在Glassfish 3.1.2上,最初是Grizzly/Glassfish不接受斜线,但是
-Dcom.sun.grizzly.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
修好了.
asadmin set configs.config.server-config.network-config.protocols.protocol.http-listener-2.http.encoded-slash-enabled=true
似乎没有帮助.
对于 node.js 项目,我添加了 eslint-plugin-security 并且它在我的测试/规范文件(使用 mochajs)中为代码提供了很多警告。由于测试代码不会在生产环境中运行,这些看起来不像在项目的实际代码中那样有用。(很多通用对象注入接收器警告)
除了放在/* eslint-disable */
每个规范文件的顶部之外,有没有办法让安全插件忽略某些文件?
我正在尝试构建一个包含xml文件作为资源的jar.我想对该xml应用过滤器以将依赖项的名称插入到xml中.过滤是有效的,因为我能够进入${project.build.finalName}
并取代它.我发现了一个暗示,我正在寻找的房产可能是
${project.dependencies[0].artifactId}
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.我想替换
<fileName>${project.dependencies[0].artifactId}</fileName>
Run Code Online (Sandbox Code Playgroud)
同
<fileName>OtherLibrary</fileName>
Run Code Online (Sandbox Code Playgroud)
那可能吗?
xml,位于src/main/resources中:
<somenode>
<fileName>${project.dependencies[0].artifactId}</fileName>
</somenode>
Run Code Online (Sandbox Code Playgroud)
pom.xml中:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.foo</groupId>
<artifactId>Thing</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Thing</name>
<url>http://maven.apache.org</url>
<build>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
<dependencies>
<dependency>
<groupId>com.pts</groupId>
<artifactId>OtherLibrary</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud) 我有一个包含两个表A和B的窗格.当在A中选择一行时,应该更新B的内容.
我的代码检测到A中的行选择.但是,当用户单击列标题以对行进行排序时,在A的表模型中似乎不会考虑这一点.
所以,我可以得到所选的行号(考虑到排序是正确的),但是当我尝试使用其表模型从A检索行字段内容时,它给出了值,就像行没有被排序一样.
如何从所选行号中检索所选行的内容?
如果在其他地方回答这个问题,请指责我并指出正确的方向.
我是Maven的新手,并试图将我的头脑与我的项目一起使用.我有两个顶级项目,一个是Swing应用程序,另一个是一组Web服务.它们都依赖于同一个内部罐子.有什么好方法可以为此设置poms?
如果jar只被其中一个项目使用,那么看起来我会把它移到里面并使它成为一个模块.但是我不想要那个jar的源代码的两个(以及更多)副本.
看起来我可以这样做的一种方法是为Swing应用程序提供一个主pom,其中包含Swing应用程序和库jar作为模块.然后为Web应用程序设置另一个主pom以相同的方式设置.那会有意义吗?还有更好的方法吗?
目录结构目前非常简单:
Development/
----SwingApp/
----WebServices/
----CoreLibrary/
Run Code Online (Sandbox Code Playgroud)
方式太多信息和附带问题如下:
我继承了一个"构建系统"(使用松散术语),它是100%Netbeans自动生成的ant脚本.我开始尝试将它放入持续集成,TeamCity,我非常喜欢.我试图用它来构建WebServices项目时遇到了严重的问题.在我所知的情况下,生成的ant(build-impl.xml)中的某些内容无法在CI环境中被覆盖.在日常开发中将这与一些严重的类路径地狱相结合,你就会开始明白我为什么要去找maven.
这个问题包含的一个问题是我的团队中的开发人员似乎都习惯了.现在,Netbeans中的各个项目都有对"CoreLibrary"项目的项目引用.这意味着当在"CoreLibrary"中更改源代码并且开发人员在顶级应用程序上进行构建时,它还将根据需要构建CoreLibrary.可以在Maven中模拟吗?这将有助于缓解过渡.到目前为止,我看到Netbeans(6.7)没有使用maven版本,我认为我不能卖掉(还)在Netbeans之外进行日常构建工作.