我在 Spring (3.0.1.RELEASE)、TestNG (5.11) 和 Maven Surefire (2.5) 中遇到了一个非常奇怪的问题。我有一个测试类,它扩展了 testNG 的 Spring 辅助类,以便可以从 xml 文件(包含一些 bean 定义)加载测试上下文。我的项目是使用m2eclipse(使用Import Maven Project)导入到eclipse中的。该类在 Eclipse TestNG 运行程序中运行良好。然而,它用 Maven Surefire 抛出这个异常:
Caused by: java.lang.ClassCastException: com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl cannot be cast to javax.xml.parsers.DocumentBuilderFactory
at javax.xml.parsers.DocumentBuilderFactory.newInstance(DocumentBuilderFactory.java:123)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.createDocumentBuilderFactory(DefaultDocumentLoader.java:89)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:70)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:388)
Run Code Online (Sandbox Code Playgroud)
我已经消除了 pom 中所有涉及的依赖项,以便这两个类
com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl仅
javax.xml.parsers.DocumentBuilderFactory来自 JRE(rt.jar)。
所以,这对我来说看起来非常难以置信。
我想知道加载类中是否有任何机制可以解释这种行为?
谢谢。
更新:这是我的依赖树:
[INFO] org.seamoo:seamoo-webapp:war:1.0-SNAPSHOT
[INFO] +- com.google.appengine:appengine-api-1.0-sdk:jar:1.3.1:compile
[INFO] +- com.google.gwt:gwt-servlet:jar:2.0.3:compile
[INFO] +- com.google.gwt:gwt-user:jar:2.0.3:provided
[INFO] +- org.apache.geronimo.specs:geronimo-servlet_2.5_spec:jar:1.2:provided
[INFO] +- org.slf4j:slf4j-api:jar:1.5.6:compile
[INFO] +- ch.qos.logback:logback-classic:jar:0.9.15:compile
[INFO] | \- ch.qos.logback:logback-core:jar:0.9.15:compile
[INFO] +- …Run Code Online (Sandbox Code Playgroud) 我们需要构建我们的网站,以便前端和后端在不同的机器上运行,并且前端将向后端发出ajax请求以获取要呈现的数据。
我们面临的挑战是,通过这种设计,呈现前端的浏览器需要在与后端联系时随时提交OPTIONS请求。
有办法吗?例如,我们在处运行前端,在处运行service.com后端api.service.com,这service.com应该可以访问“ XYZservice.com”,而不需要持续的OPTIONS预检请求,不是吗?
你们能告诉我一种在Google App Engine上模拟对memcache的并发访问的方法吗?我正在尝试使用LocalServiceTestHelpers和线程,但没有任何运气.每次我尝试在一个线程中访问Memcache,然后我收到此错误:
ApiProxy$CallNotFoundException: The API package 'memcache' or call 'Increment()' was not found
Run Code Online (Sandbox Code Playgroud)
我猜GAE SDK的测试库试图模仿真实环境,因此只为一个线程(运行测试的线程)设置环境,这是其他线程无法看到的.
这是一段可以重现问题的代码
package org.seamoo.cache.memcacheImpl;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.google.appengine.api.memcache.MemcacheService;
import com.google.appengine.api.memcache.MemcacheServiceFactory;
import com.google.appengine.tools.development.testing.LocalMemcacheServiceTestConfig;
import com.google.appengine.tools.development.testing.LocalServiceTestHelper;
public class MemcacheTest {
LocalServiceTestHelper helper;
public MemcacheTest() {
LocalMemcacheServiceTestConfig memcacheConfig = new LocalMemcacheServiceTestConfig();
helper = new LocalServiceTestHelper(memcacheConfig);
}
/**
*
*/
@BeforeMethod
public void setUp() {
helper.setUp();
}
/**
* @see LocalServiceTest#tearDown()
*/
@AfterMethod
public void tearDown() {
helper.tearDown();
}
@Test
public void memcacheConcurrentAccess() …Run Code Online (Sandbox Code Playgroud) Google Chrome 23 和 Firefox 18 让我抓狂。我有一个页面,其中有一个 iframe。单击按钮时,我希望打开 iframehttp://images.google.com
问题是 iframe 将尝试访问http://images.google.com,但是一旦它收到重定向指令(http://images.google.com正在发出),它就会停止并且页面将不会' t 被渲染。这是为什么?有什么解决办法吗?
这是演示该问题的片段:
<iframe id="panel" style="height: 800px; width: 100%" sandbox="allow-scripts" src="http://images.google.com">
</iframe>
Run Code Online (Sandbox Code Playgroud) 我想创建一个只允许s3的AWS访问密钥.这意味着密钥不能与任何其他服务一起使用.可能吗?怎么样?
我知道如果我使用Google Plugin for Eclipse,这项工作会更简单.
但是,在我的情况下,我大量改编Maven,因此插件不适合我.(事实上,它给了我整整一周的头痛).
相反,我依赖于我从http://code.google.com/webtoolkit/doc/latest/tutorial/appengine.html学到的蚂蚁脚本
该文件非常清楚; 我按照文章使用ant devmode成功调用了DevMode.但是,该文档没有告诉我有关调试GWT的信息(就像Eclipse的Google插件可以做的那样).
基本上,我想在暴露调试端口的ant任务中添加一些参数(类似于(本地主机:58807中的com.google.gwt.dev.DevMode)),以便我可以将我的eclipse连接到.
我怎样才能做到这一点?
是的,您可以通过setName设置属性名称并通过getName获取它.但是在C#中这样的属性怎么样:
int Name{
get{return name;}
set{name = value;}
}
Run Code Online (Sandbox Code Playgroud)
要么
Name{get; set;}
Run Code Online (Sandbox Code Playgroud)
(汽车财产)
我想知道Scala中是否存在这样的事情.谷歌搜索没有任何信号.
我正在使用这个的init.d脚本:http://wiki.nginx.org/RedHatNginxInitScript但这个脚本很糟糕我的CentOS 5.5 nginx 1.0.6(由乘客安装).它有两个原因:
当我跑service nginx start,它启动nginx但然后不要自己退出.
它运行在一些不同的运行时路径($ PATH)中,以便rails无法找到位于/ usr/local/bin内的可执行文件(如node.js)
是否有任何init.d脚本适用于你们(在CentOS或其他基于Redhat的发行版上)没有这些问题?
我们希望在2到3分钟内上传几千个.大多数上传量约为20 - > 200 Mb.从技术上讲,我认为上传与Rails没什么关系,而是WebServer(Apache/Nginx),所以只要服务器可以处理并发请求,那么Rails应用程序就没有多少工作要做(移动文件除外)正确存储并创建数据库记录以跟踪文件).
我的假设是对的吗?通常,单个Rails应用程序进程可以处理多少并发上载?(鉴于Rails应用程序可能需要20毫秒进行所有计算,移动文件和创建数据库记录,但连接必须保持活动1分钟,以便文件可以成功传输)