我在我的程序中有以下代码片段,并且在与Maven集成之后,我正在运行SonarQube 5以进行代码质量检查.
然而,Sonar抱怨我应该记录或重新抛出此异常.
我在这里错过了什么?我还没有记录异常吗?
private boolean authenticate(User user) {
boolean validUser = false;
int validUserCount = 0;
try {
DataSource dataSource = (DataSource) getServletContext().getAttribute("dataSource");
validUserCount = new MasterDao(dataSource).getValidUserCount(user);
} catch (SQLException sqle) {
LOG.error("Exception while validating user credentials for user with username: " + user.getUsername() + " and pwd:" + user.getPwd());
LOG.error(sqle.getMessage());
}
if (validUserCount == 1) {
validUser = true;
}
return validUser;
}
Run Code Online (Sandbox Code Playgroud) 我有两个与Spring框架中的异常处理有关的问题.
1)为什么Spring框架DataAccessException
是运行时异常,而Core Java是SQLException
一个经过检查的异常?
2)Spring的异常处理优于Java的异常handlnig机制有什么优势?
我bundle install
在Rails 4应用程序中执行命令时遇到以下错误.
> ruby -v
ruby 2.1.8p440 (2015-12-16 revision 53160) [i386-mingw32]
> rails --version
Could not find gem 'capybara-webkit x86-mingw32' in any of the gem sources listed in your Gemfile or available on this machine.
Run `bundle install` to install missing gems.
Run Code Online (Sandbox Code Playgroud)
我的Gemfile
...
.....
group :development, :localtesting, :test do
gem 'sqlite3', '1.3.11'
gem 'byebug', '3.4.0'
#gem 'web-console', '2.0.0.beta3'
gem 'spring', '1.1.3'
gem 'i18n-tasks'
gem 'capybara'
gem 'selenium-webdriver'
gem 'rspec'
gem 'rspec-rails'
gem 'rspec_junit_formatter'
gem 'capybara-webkit'
end …
Run Code Online (Sandbox Code Playgroud) 是否可以MongoDB
使用src/main/resources/data.sql
或通过任何其他文件在数据库中加载初始数据?
据我所知,data.sql
用于SQL
数据库的,而MongoDB
一个NOSQL
DB.但只是想知道是否有任何等同data.sql
于NOSQL
数据库的.
谷歌搜索时我发现了这个SO链接(Spring Boot - 正在加载初始数据),它正在寻找我正在寻找的东西,但它仍然不是一个独立的文件data.sql
.
我正在尝试在遵循一些在线教程后在Hadoop中运行WordCount示例.但是,当我们执行以下命令时,我不清楚文件从本地文件系统复制到HDFS的位置.
hadoop fs -copyFromLocal /host/tut/python-tutorial.pdf /usr/local/myhadoop-tmp/
Run Code Online (Sandbox Code Playgroud)
当我执行以下命令时,我没有在HDFS上看到我的python-tutorial.pdf.
hadoop fs -ls
Run Code Online (Sandbox Code Playgroud)
这让我很困惑.我已经在core-site.xml中指定了"myhadoop-tmp"目录.我以为这个目录将成为存储所有输入文件的HDFS目录.
core-site.xml
=============
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/myhadoop-tmp</value>
<description>A base for other temporary directories.</description>
</property>
Run Code Online (Sandbox Code Playgroud)
如果不是HDFS位于我的机器上的情况?什么配置决定HDFS目录以及输入文件从本地文件系统复制到HDFS时的位置?
我最近将我的NetBeans IDE从v7.3升级到v8,突然我的应用程序在连接到DB时在服务器启动时抛出异常.这两个版本的IDE之间的唯一区别是后者使用Tomcat 8.
javax.naming.NamingException: Could not load resource factory class [Root exception is java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory]
at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:82)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321)
at org.apache.naming.NamingContext.lookup(NamingContext.java:841)
at org.apache.naming.NamingContext.lookup(NamingContext.java:152)
at org.apache.naming.NamingContext.lookup(NamingContext.java:829)
at org.apache.naming.NamingContext.lookup(NamingContext.java:152)
at org.apache.naming.NamingContext.lookup(NamingContext.java:829)
at org.apache.naming.NamingContext.lookup(NamingContext.java:152)
at org.apache.naming.NamingContext.lookup(NamingContext.java:829)
at org.apache.naming.NamingContext.lookup(NamingContext.java:166)
at org.apache.naming.SelectorContext.lookup(SelectorContext.java:157)
at javax.naming.InitialContext.lookup(InitialContext.java:411)
at com.istore.core.listeners.AppContextListener.initdb(AppContextListener.java:44)
at com.istore.core.listeners.AppContextListener.contextInitialized(AppContextListener.java:27)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4738)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5158)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:697)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:579)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:455)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1554)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1428)
at …
Run Code Online (Sandbox Code Playgroud) 我在网上查看了与测试相关的各种教程,Spring Boot
并对测试的引用方式感到困惑。
有些文章将使用@WebMvcTest
注释的控制器测试称为 as,Unit Test
而有些则将其称为Integration Test
. 不确定哪一个是正确的。
同样的问题适用于使用@DataJpaTest
.
我在我的应用程序中编写了以下两个测试,一个用于控制器,另一个用于存储库。
在底部,我对两者都有一些疑问。请指导。
用户控制器测试.java
@RunWith(SpringRunner.class)
@WebMvcTest(UserController.class)
public class UserControllerTest {
@Autowired
private MockMvc mockMvc;
@MockBean
private UserRepository userRepository;
@Test
public void signUp() throws Exception {
this.mockMvc.perform(get("/signup")).andExpect(status().isOk());
}
}
Run Code Online (Sandbox Code Playgroud)
UserRepositoryTest.java
@RunWith(SpringRunner.class)
@DataJpaTest
public class UserRepositoryTest {
@Autowired
private TestEntityManager entityManager;
@Autowired
private UserRepository userRepository;
@Test
public void whenFindByName_thenReturnEmployee() {
// given
User u = new User();
u.setName("ab");
u.setEmail("ab@cd.com");
entityManager.persistAndFlush(u);
// when
Optional<User> user = …
Run Code Online (Sandbox Code Playgroud) java integration-testing unit-testing spring-boot spring-boot-test
在最新版本的Hadoop 2.2中,我看到发行说明提到该版本在Windows上运行Hadoop方面有重大改进.我昨天下载了Hadoop 2.2,我看到很多带有.sh文件的.cmd文件,确保这个版本有脚本和批处理文件,用于在Windows环境下运行Hadoop.但是,在查看Apache Hadoop文档时,我找不到有关如何在Windows上安装和运行此新版本的任何分步说明.除此之外,看起来新版本中嵌入了YARN架构,在线教程中提供的旧配置可能已经过时,不再适用.Hadoop 2.2是否有在线提供的良好文档?我希望它专门用于在Windows下运行Hadoop.
近日笔者从升级我的雨燕的iOS应用程序Xcode7
,以Xcode8
和部署平台,iOS 9.3
来iOS 10
.我的应用程序开始打破这样的错误:
模块文件是由旧版本的编译器创建的:重建'SwiftyJSON'并重试.
我用Google搜索并发现SO Module文件上的这个链接是由旧版本的编译器创建的.按照说明操作并删除派生数据并使用carthage update --no-use-binaries
命令重建.但是应用程序仍然无法构建并抱怨上面提到的错误消息.
是SwiftyJSON
通过支持Xcode 8
和iOS 10
?
我想xmlns
从以下xml字符串中删除属性。我已经编写了一个java
程序,但是不确定它是否需要执行此处的操作。
如何删除xmlns
属性并获取修改后的xml字符串?
输入XML字符串:
<?xml version="1.0" encoding="UTF-8"?>
<Payment xmlns="http://api.com/schema/store/1.0">
<Store>abc</Store>
</Payment>
Run Code Online (Sandbox Code Playgroud)
预期的XML输出字符串:
<?xml version="1.0" encoding="UTF-8"?>
<Payment>
<Store>abc</Store>
</Payment>
Run Code Online (Sandbox Code Playgroud)
Java类:
public class XPathUtils {
public static void main(String[] args) {
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Payment xmlns=\"http://api.com/schema/store/1.0\"><Store>abc</Store></Payment>";
String afterNsRemoval = removeNameSpace(xml);
System.out.println("afterNsRemoval = " + afterNsRemoval);
}
public static String removeNameSpace(String xml) {
try {
System.out.println("before xml = " + xml);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
InputSource inputSource = new InputSource(new StringReader(xml));
Document …
Run Code Online (Sandbox Code Playgroud)