我正在尝试在tomcat中配置db2数据库的数据源(使用eclipse作为IDE),但是我无法解决问题,Tomcat向我抛出了以下异常:
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.ibm.db2.jcc.DB2Driver'
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1136)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at com.azurian.lce.usuarios.ConnectionManager.getConnection(ConnectionManager.java:65)
at com.azurian.lce.usuarios.db2.UsuarioDAOImpl.autenticar(UsuarioDAOImpl.java:101)
at com.azurian.lce.usuarios.UsuarioServiceImpl.autenticar(UsuarioServiceImpl.java:31)
at com.azurian.lce.web.admin.actions.LoginAction.execute(LoginAction.java:49)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.ibm.db2.jcc.DB2Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at …Run Code Online (Sandbox Code Playgroud) 我有一个托管包,我有一个私人Tomcat,我运行哈德森.我想开始使用Mercurial和BitBucket(这是非常棒的btw),我的问题是Hudson或Mercurial插件没有像Subversion一样捆绑Mercurial,你必须将你的插件指向你的Mercurial安装.我的托管没有安装Mercurial所以我尝试(使用有限的linux技能)自己安装它.
我很快发现我需要以root身份运行安装,我显然没有.即使我在没有root的情况下运行它,它仍然会尝试写入只具有root访问权限的目录.
我是否遗漏了某些内容或听起来如果没有root权限我将无法安装它?
谢谢,肖恩
我想知道程序员是否有必要拥有至少1种编程语言的专业知识?
像C#,java,VB.Net等编程语言每年或每两年都会发生变化.程序员是否应该掌握C++,这是一种稳定的语言,很少经历变化?
我是一名C#开发人员,现在使用它大约7年了,我仍然没有掌握它.
编辑我认为我的问题被误解了.我并不反对改变或进化.我喜欢C#,VB,Java等语言提供的新功能和抽象.如果它让程序员的生活更轻松,我一直在等待新的功能.但这一事实也使这些语言很难掌握.他们在不断发展.像C++这样的语言具有缓慢的进化周期.因此,考虑到这种情况,掌握C++是否有帮助?这就是我原来的问题.注意: - 根据以下朋友的答案,我了解语言和框架是表达概念的工具.用不同的编程语言表达概念也许是一个好主意.
也许是一个简单的问题,但我不能完全按照我的Google查询来查找答案.当我将对象传递给对象构造函数时,我习惯于复制对象,如下所示:
...
def __init__(self, name):
self._name = name[:]
...
Run Code Online (Sandbox Code Playgroud)
但是,当我运行以下测试代码时,似乎没有必要,Python在对象实例化时正在制作对象值的深层副本:
>>> class Candy(object):
... def __init__(self, flavor):
... self.flavor = flavor
...
>>> flav = "cherry"
>>> a = Candy(flav)
>>> a
<__main__.Candy object at 0x00CA4670>
>>> a.flavor
'cherry'
>>> flav += ' and grape'
>>> flav
'cherry and grape'
>>> a.flavor
'cherry'
Run Code Online (Sandbox Code Playgroud)
那么,这里的真实故事是什么?谢谢!
编辑:
感谢@Olivier的出色回答.以下代码记录了Python通过引用复制的更好示例:
>>> flav = ['a','b']
>>> a = Candy(flav)
>>> a.flavor
['a', 'b']
>>> flav[1] = 'c'
>>> flav
['a', 'c']
>>> a.flavor
['a', 'c']
Run Code Online (Sandbox Code Playgroud) 我需要为用户提供一种在ASP.Net中编辑表的方法.表格很简单(没有主/细节关系),但可能会有很多.提供表格的查看/编辑界面的最快/最简单的方法是什么,即使考虑商业选项(但不是Iron Speed Designer.那东西对于我需要的东西来说是非常昂贵的)?
在最简单/理想的配置中,我想将控件指向一个表并完成.我已经看了几个ORM解决方案,但他们都试图成为瑞士军刀,只是在复杂性上,并且往往是自己的野兽.
有什么东西可以帮助我在这里疯狂吗?或者我应该潜入SubSonic或类似的东西?
简短问题:列表中有多少个元素可以像List O(n)那样进行线性搜索,然后比字典O(1)更快?
我似乎记得在大学(和高中)比较搜索技术(二元与线性)时总是存在线性更快的点.那是O(n)vs O(log)
我不能在这里画图.但是对于不断的表现必须有一些头脑.所以问题是如果我有10个项目List.Find然后更有意义
if (Dictionary.Contains(x))
value = Directiory[x]
Run Code Online (Sandbox Code Playgroud)
或者Hashtable,其中value = Hashtable [x]不会失败,但需要装箱
借助.NET 4.0中的新动态功能,似乎应该可以动态实现接口,例如:
public interface IFoo
{
string Bar(int baz);
}
public class Foo : IFoo
{
public string Bar(int baz) { return baz.ToString(); }
}
public class Proxy : IDynamicMetaObjectProvider
{
private readonly object target;
public Proxy(object target) { this.target = target; }
// something clever goes here
}
Run Code Online (Sandbox Code Playgroud)
然后我希望有一些方法可以写:
dynamic proxy = new Proxy(new Foo());
IFoo fooProxy = (IFoo)proxy; // because the target object implements it
string bar = fooProxy.Bar(123); // delegates through to the target implementation
Run Code Online (Sandbox Code Playgroud)
但是,到目前为止,我还不确定要替换什么// …
我目前正在研究一个通过属性公开内部List的类.列表应该并且可以修改.问题是,内部列表中的条目可以从类外部设置为null.
我的代码实际上是这样的:
class ClassWithList
{
List<object> _list = new List<object>();
// get accessor, which however returns the reference to the list,
// therefore the list can be modified (this is intended)
public List<object> Data
{
get
{
return _list;
}
}
private void doSomeWorkWithTheList()
{
foreach(object obj in _list)
// do some work with the objects in the list without checking for null.
}
}
Run Code Online (Sandbox Code Playgroud)
所以现在在doSomeWorkWithTheList()中,我总是可以检查当前列表条目是否为null,或者我可以假设使用此类的人没有将条目设置为null的好主意.
所以最后问题最终出现了:在这种情况下,谁的错误是NullReferenceException?是类开发人员没有检查null的所有错误(这通常会使代码 - 不仅在这个类中 - 更复杂)或者是这个类的用户的错误,因为将List条目设置为null doesn'真的有道理吗?除了在一些非常特殊的情况下,我倾向于通常不检查null的值.这是一种糟糕的风格或事实上的标准/标准吗?
我知道这可能没有最终答案,我只是缺少足够的经验来处理这样的事情,因此想知道其他开发人员对这些案例的看法,并希望听到关于检查null(或不是)的现实情况.
我有以下格式的文字:
ERR_OUT_OF_MEM, "ERR OUT OF MEM"
ERR_SOMETHING_BAD, "ERR SOMETHING BAD"
Run Code Online (Sandbox Code Playgroud)
我想用下划线替换文本中带引号的所有空格:
ERR_OUT_OF_MEM, "ERR_OUT_OF_MEM"
ERR_SOMETHING_BAD, "ERR_SOMETHING_BAD"
Run Code Online (Sandbox Code Playgroud)
我能想到的最好的正则表达式是:
\("\w\+\)\@<=
Run Code Online (Sandbox Code Playgroud)
(那里有一个空间)
但是这只能找到每个引用字符串中的第一个空格,我需要多次重复这个空格才能获得所需的效果.
有什么办法一次性完成吗?
谢谢!
今天我的一位朋友告诉我,以下代码在他的Visual Studio 2008上编译得很好:
#include <vector>
struct A
{
static int const const_iterator = 100;
};
int i;
template <typename T>
void PrintAll(const T & obj)
{
T::const_iterator *i;
}
int main()
{
std::vector<int> v;
A a;
PrintAll(a);
PrintAll(v);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我通常使用g ++,它总是拒绝传递第二个PrintAll()调用.据我所知,对于这个问题,g ++正在以标准的方式翻译模板.
那么,我的知识是错误的,还是VS2008的扩展?