问题列表 - 第184386页

Tomcat 8 - java.sql.SQLException:无法为连接URL创建类''的JDBC驱动程序'jdbc:mysql:// xxx/myApp'

我在网上到处寻找我的问题的解决方案,但我没有运气!:(

我正在尝试开发一个能够连接到MySQL数据库(连接池)并将其部署在Tomcat 8服务器上的servlet.

我在META-INF中有一个context.xml文件,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
   <Context antiJARLocking="true" path="/DBConnectionPoolTest">
       <Resource name="jdbc/testdb"
                 auth="Container"
                 type="javax.sql.DataSource"
                 username="xxx" password="xxx"
                 driverclassname="com.mysql.jdbc.Driver"
                 url="jdbc:mysql://xxx/myApp"
                 maxactive="10"
                 maxidle="4" />
   </Context>
Run Code Online (Sandbox Code Playgroud)

在WEB-INF中,我创建了web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">   
    <resource-ref>
        <description>DB Connection</description>
        <res-ref-name>jdbc/testdb</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>
</web-app>
Run Code Online (Sandbox Code Playgroud)

最后,在servlet类中,我使用:

Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
dataSource = (DataSource) envContext.lookup("jdbc/testdb");
...
connection = dataSource.getConnection();
Run Code Online (Sandbox Code Playgroud)

但是在这一行上,当我尝试从数据源获取连接时,我得到以下异常:

java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'jdbc:mysql://xxx/myApp'
t org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:2065)
    at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:1939)
    at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1412)
    at DBPoolConnectionServlet.processRequest(DBPoolConnectionServlet.java:73) …
Run Code Online (Sandbox Code Playgroud)

mysql tomcat jdbc

10
推荐指数
1
解决办法
2万
查看次数

使用ROUND_HALF_UP的BigDecimal 1.0E + 8/100000000为0

有人可以解释为什么第一行的结果为0?

System.out.println((new BigDecimal("1.0E+8")).divide(new BigDecimal(100000000), BigDecimal.ROUND_HALF_UP));
System.out.println((new BigDecimal("1.0E+8")).subtract(BigDecimal.ONE).divide(new BigDecimal(100000000), BigDecimal.ROUND_HALF_UP));

0E+7
1
Run Code Online (Sandbox Code Playgroud)

java rounding bigdecimal divide

7
推荐指数
1
解决办法
1117
查看次数

在没有ModelAndView的Spring MVC 4中重定向301状态

我尝试重定向301 Status Code(你知道我想成为SEO友好等).

我使用InternalResourceViewResolver所以我想使用某种类似于return "redirect:http://google.com"我的控制器中的代码.这虽然会发送一个302 Status Code

我尝试过使用a HttpServletResponse来设置标题

@RequestMapping(value="/url/{seo}", method = RequestMethod.GET)
public String detail(@PathVariable String seo, HttpServletResponse response){
    response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
    return "redirect:http://google.com";
}
Run Code Online (Sandbox Code Playgroud)

它仍然返回302.

在检查文档和Google搜索结果后,我想出了以下内容:

@RequestMapping(value="/url/{seo}", method = RequestMethod.GET)
public ModelAndView detail(@PathVariable String seo){
    RedirectView rv = new RedirectView();
    rv.setStatusCode(HttpStatus.MOVED_PERMANENTLY);
    rv.setUrl("http://google.com");
    ModelAndView mv = new ModelAndView(rv);
    return mv;
}
Run Code Online (Sandbox Code Playgroud)

它确实工作得很好,正如预期的那样,返回代码 301

我想在不使用ModelAndView的情况下实现它(也许它完全没问题).可能吗?

注意:包含的片段只是详细信息控制器的一部分,重定向仅在某些情况下发生(支持旧版URL).

java spring spring-mvc

6
推荐指数
2
解决办法
8496
查看次数

如何在Spark中以小块的形式迭代大型Cassandra表

在我的测试环境中,我有1个Cassandra节点和3个Spark节点.我想迭代一个大约有200k行的大表,每个大约需要20-50KB.

CREATE TABLE foo (
  uid timeuuid,
  events blob,
  PRIMARY KEY ((uid))
) 
Run Code Online (Sandbox Code Playgroud)

这是在spark集群中执行的scala代码

val rdd = sc.cassandraTable("test", "foo")

// This pulls records in memory, taking ~6.3GB
var count = rdd.select("events").count()  

// Fails nearly immediately with 
// NoHostAvailableException: All host(s) tried for query failed [...]
var events = rdd.select("events").collect()
Run Code Online (Sandbox Code Playgroud)

Cassandra 2.0.9,Spark:1.2.1,Spark-cassandra-connector-1.2.0-alpha2

我试图只运行collect,没有count- 在这种情况下它只是快速失败NoHostAvailableException.

问题:迭代大表读取和一次处理小批量行的正确方法是什么?

scala cassandra apache-spark rdd

3
推荐指数
1
解决办法
3005
查看次数

wireshark中两个数据包之间的时间差

我想计算从发送数据包到恢复ACK之间的时间差.我没有在数据包中看到任何与时间戳相关的信息,任何人都可以给我任何关于如何计算差异的指示.

pcap wireshark libpcap

6
推荐指数
3
解决办法
1万
查看次数

Objective-C中抽象类和接口的区别

关于iOS开发人员访谈的最常见问题之一是 - 抽象类和界面之间的区别.

我不知道答案,我也不知道答案.当您声明方法时,接口是类的一部分.它可以对其他类(public,.h文件)开放或隐藏在实现中.

抽象类是一个类,它只用于创建隐藏的子类,它不应该有自己的init方法(如果我理解正确的话).

那么,这个问题的答案到底是什么?这个问题意味着什么?

我确实花了很多时间寻找答案,但答案与Obj-C无关,所以我不知道自己.

我希望有人可以提供明确的答案,这个问题对那些想要通过面试的人有所帮助.

objective-c

16
推荐指数
1
解决办法
1万
查看次数

在scala中生成一棵树

我正在学习scala和我正在使用的书要求练习来定义树结构上的一些功能.

树被定义为:

sealed trait Tree[+A]
case class Leaf[A](value: A) extends Tree[A]
case class Branch[A](left: Tree[A], right: Tree[A]) extends Tree[A]
Run Code Online (Sandbox Code Playgroud)

其中一个练习是计算树中的节点数.我写了这个函数,但我无法检查它是否正常工作,因为我没有任何树的例子.

如何生成可用于测试代码的小树?

可能有可能在树上添加一个元素,但它似乎很多工作.

tree scala data-structures

3
推荐指数
2
解决办法
5632
查看次数

从测试中获取详细输出

如何进行"make test"以显示详细输出?我希望"make test"通过命令行执行与ctest -V相同的操作.

我尝试将以下内容添加到我的CMakeLists.txt中,没有任何效果:(

set(ENV{CTEST_OUTPUT_ON_FAILURE} TRUE)

add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --verbose)

add_custom_command(TARGET test PRE_BUILD
               COMMAND ${CMAKE_CTEST_COMMAND} -V)
Run Code Online (Sandbox Code Playgroud)

但是当我运行make test时我仍然会得到这个:

  Start   1: unittest1
  1/143 Test   #1: unittest1 ....................................   Passed    0.01 sec
        Start   2: unittest2
  2/143 Test   #2: unittest2 ............................   Passed    0.03 sec
        Start   3: unittest3
  3/143 Test   #3: unittest3 ....................   Passed    0.02 sec
Run Code Online (Sandbox Code Playgroud)

为了澄清,我想在我的CMakeLists.txt中添加一些内容以使其成为可能,我不想要一个手动解决方案,要求我在命令行中添加"make test",例如

CTEST_OUTPUT_ON_FAILURE=TRUE make test
Run Code Online (Sandbox Code Playgroud)

要么

ctest -V 
Run Code Online (Sandbox Code Playgroud)

我的问题类似于使用cmake如何从ctest获得详细输出?.

cmake ctest

8
推荐指数
1
解决办法
3966
查看次数

C#计时器自动启动

我不知道为什么我的计时器自动启动.也许有人可以帮忙吗?

public int sek;
void TextBox1TextChanged(object sender, EventArgs e)
{
    sek = sek+Convert.ToInt32(textBox1.Text);           
}

void Button1Click(object sender, EventArgs e)
{
    label2.Text = Convert.ToString(sek);
    timer1.Start();
}

void Label2Click(object sender, EventArgs e)
{

}

void Timer1Tick(object sender, EventArgs e)
{
    label2.Text = Convert.ToString(sek);
    if (sek==0){
        Console.Beep(1000 ,500);
        MessageBox.Show("Times is out");
        timer1.Stop();
    }           
}
Run Code Online (Sandbox Code Playgroud)

c# winforms

0
推荐指数
2
解决办法
934
查看次数

JDK 1.7允许自定义标记名称*起始*带点.JDK 1.8禁止它吗?

我写了一个自定义的Taglet的图书馆与名称开始以一个点:.codelet,.codelet.and.out,等等.它是用JDK 7编译的.

使用1.7生成JavaDoc时javadoc.exe,它工作正常.但是当使用JDK 8生成它时,它失败了,因为

C:\...\Temp.java:5: error: no tag name after @
 * {@.codelet mypkg.Temp}`
Run Code Online (Sandbox Code Playgroud)

如果我使用 taglet(而不是taglet代码本身)将代码更改为{@codelet mypkg.Temp}:

C:\...\Temp.java:5: error: unknown tag: codelet
 * {@codelet mypkg.Temp}
Note: Custom tags that were not seen:  @.codelet
1 error
Run Code Online (Sandbox Code Playgroud)

更改taglet源代码中的名称cod.elet(code.let因为code已经存在的taglet名称不好),并使用该新名称,它可以工作.

-tag选项的JavaDoc工具文档(在该部分的底部附近)指出:

避免冲突:如果要创建自己的命名空间,则可以使用与包用的类似的点分隔命名约定:com.mycompany.todo.Oracle将继续创建名称不包含点的标准标记.您创建的任何标记都将使用Oracle定义的相同名称覆盖标记的行为.如果创建@todo标记或标记,则它始终具有您定义的相同行为,即使Oracle稍后创建了同名的标准标记.

我在这里错过了一些东西吗?或者这是一个无证的变化,真的很糟糕?因为它需要我的库中有一个很大的变化,如果是这样的话.

仅供参考:Taglet概述文档

java javadoc taglet java-8

9
推荐指数
1
解决办法
417
查看次数