我有一个Spring MVC控制器,带有一些简单的REST服务请求.我想在从我的服务中抛出特定异常时添加一些错误处理,但是我无法获得一个用@ExceptionHandler注释的处理程序方法来实际调用它.这是一个服务我故意抛出异常来尝试让我的处理程序方法接管.永远不会调用处理程序方法,Spring只会向调用客户端返回500错误.你对我做错了什么有什么想法吗?
@ExceptionHandler(IOException.class)
public ModelAndView handleIOException(IOException ex, HttpServletRequest request, HttpServletResponse response) {
response.sendError(HttpServletResponse.SC_FORBIDDEN);
System.out.println("It worked!");
return new ModelAndView();
}
@RequestMapping(value = "/json/remove-service/{id}", method = RequestMethod.DELETE)
public void remove(@PathVariable("id") Long id) throws IOException {
throw new IOException("The handler should take over from here!");
}
Run Code Online (Sandbox Code Playgroud) 我通过运行以下命令将标准可执行jar文件安装为Windows服务:
> prunsrv.exe //IS//"My Service" --Install="C:\path-to-prunsrv.exe" --Jvm=auto \
--Startup=auto --StartMode=jvm --Classpath="C:\path-to-MyService.jar" \
--StartClass=com.mydomain.MyService
Run Code Online (Sandbox Code Playgroud)
我现在可以通过运行以下命令(我正在使用Java 1.6)在控制台模式下运行我的程序:
> prunsrv.exe //TS//"My Service"
Run Code Online (Sandbox Code Playgroud)
当我尝试通过标准Windows服务接口启动服务时,我收到以下错误消息:
本地计算机上的MyService服务已启动,然后停止.如果某些服务未被其他服务或程序使用,则会自动停止.
当我尝试以这种方式启动服务时,我的应用程序的日志文件中没有输出.Window的事件日志(Windows 7 64位)中也没有输出.我该怎么做才能找出为什么这项服务无法运行?
如何发送一个字节(或字节)来测试正在我的应用程序中的端口上侦听的TCP套接字?我的应用程序收到一个字节,告诉它该做什么.某些操作将接收额外的字节以进一步指示它.
我已经尝试过使用Telnet,但是当我输入int值时,它似乎发送了int(4个字节).
我只需要发送一个字节(8位),而不是4字节的序列.有没有简单的方法来测试我的套接字应用程序?我应该创建另一个应用程序来测试吗?
我正在将我的项目从GWT 2.3.0升级到2.4.0.作为副作用,我的GWT编译因内存不足而失败.我在网上搜索,发现你可以在Maven pom.xml文件中指定额外的内存参数(通过添加配置块),如下所示:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>2.4.0</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
<configuration>
<extraJvmArgs>-XX:MaxPermSize=512m -Xmx1024m</extraJvmArgs>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
如果我直接使用Maven构建,这可行,但是当我使用IntelliJ构建时,它仍然会耗尽内存.当我在IntelliJ编译时查看我的操作系统上的进程详细信息时,它仍然使用-Xmx128m作为传递给JVM的标志.
如何配置插件可以在IntelliJ内部使用的最大内存?
我是否可以采取具体步骤从Windows 32位,Windows 64位,Linux 32位和Linux 64位构建Xuggle Xuggler源代码?我已经在多个系统上多次尝试并且不断遇到很多不同的错误.
更新
我花了几天时间试图让Xuggle Xuggler编译(并交叉编译).我成功地编译了原始GPL版本的代码和LGPL版本.我以为我会在Stack Overflow上发布我自己的问题的答案来分享我的知识.
Raspberry Pi的更新
我还能够按照以下相同的基本说明在Raspberry Pi上构建和运行Xuggler.我刚刚使用了我在Github上维护的代码的LGPL版本,并对Pi进行了修改.我也可以在我的Radxa Rock(另一个ARM设备)上使用已编译的JAR文件和二进制文件.如果你有兴趣在Pi上构建,你可以使用我的pi分支:
https://github.com/ed/xuggle-xuggler
如果你很懒,只想要Pi/ARM的预编译.jar文件:
在我的标记中,我想在元素之间添加一个空格( ),而不必总是使用CSS来完成.如果我把 在我的标记中,GWT会抛出错误.有办法解决吗?
例如:
<g:Label>One </g:Label><g:Label>Two</g:Label>
Run Code Online (Sandbox Code Playgroud)
应该显示:
One Two
Run Code Online (Sandbox Code Playgroud)
并不是:
OneTwo
Run Code Online (Sandbox Code Playgroud) 我正在尝试加载二进制映像文件以在我的服务器端Java代码中进行一些处理.我目前将我的图像放在我执行类存在的包中并调用:
Image img = Image.getInstance(this.getClass().getResource("logo.png"));
Run Code Online (Sandbox Code Playgroud)
当我在爆炸战争设置中在我的开发盒上运行Tomcat时,这很好用,但当我部署到运行Tomcat的服务器时,它不会爆炸war文件,对getResource的调用返回null.
我也尝试将图像移动到我的上下文根并像这样访问它:
Image img = Image.getInstance(this.getClass().getResource("/../../logo.png"));
Run Code Online (Sandbox Code Playgroud)
同样,这适用于我的开发盒,但不是在我将其部署到其他地方时.
有没有更好的方法来访问此文件?我究竟做错了什么?
谢谢!!
我目前使用 Google Translate API (v2) 将美国英语内容翻译成我们软件支持的各种其他语言。然后,我们有一个流程,用户可以提交翻译更正,以便我们最终得到相当好的翻译。
我们现在希望添加对英国英语的支持,以便我们在英国的英语软件用户可以拥有更好的用户体验。
有什么方法可以自动在美国英语和英国英语之间进行转换,还是我们只需要手动修复所有内容?