小编Ben*_*fez的帖子

在tomcat基于Spring的应用程序中使用c3p0连接池

我有一个在tomcat 6下运行的基于Spring的Web应用程序.现在,我想使用c3p0连接池而不是tomcat的默认DBCP.所以,从c3p0帮助文档中,我已经定义了context.xml类似的数据源:

<Resource name="jdbc/sample" auth="Container"
     driverClassName="oracle.jdbc.driver.OracleDriver"
     url="jdbc:oracle:thin:@someServer:1551:xyz"
     username="userName"
     password="pwd"
     validationQuery="SELECT 1 FROM dual"
     testOnBorrow="true"
     testWhileIdle="true"
     factory="org.apache.naming.factory.BeanFactory" 
     type="com.mchange.v2.c3p0.ComboPooledDataSource" 
     maxPoolSize="20" 
     minPoolSize="5" 
     acquireIncrement="1" 
   />
Run Code Online (Sandbox Code Playgroud)

现在,文档说,我应该包括以下内容web.xml:

<resource-ref>
  <res-ref-name>jdbc/sample</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
</resource-ref> 
Run Code Online (Sandbox Code Playgroud)

我还有以下内容applicationContext.xml:

<jee:jndi-lookup id="sampleDataSource" resource-ref="true"
    jndi-name="jdbc/sample" />
Run Code Online (Sandbox Code Playgroud)

当我启动tomcat时,我得到了

javax.naming.NameNotFoundException:名称jdbc未绑定在此Context中

没有c3p0并在tomcat6中使用默认连接池工作正常.

任何帮助,将不胜感激.

spring connection-pooling c3p0 tomcat6

5
推荐指数
1
解决办法
9775
查看次数

为什么我得到SQLException:数据库被锁定在我的JDBC SQLite数据库上?

我有一个单线程应用程序,在本地文件系统上的3个不同文件中使用3个SQLite数据库.

我创建了一个DbAdapter帮助器类来打开与SQLite数据库文件的连接.在这个类中,我有一个open创建连接的close方法,以及一个释放所有内容的方法.

从派生的类访问3个数据库DbAdapter.

在我的程序中,每个数据库访问都是这样的:

MyDbAdapter DB = new MyDBAdapter();
int stuff = DB.getStuff(); // queries the database
DB.close();
// now do something with `stuff`
Run Code Online (Sandbox Code Playgroud)

我已经登录了stdout所有来电DbAdapter.openDbAdapter.close.每次都有一个open(),close()紧随其后.
我也小心翼翼地关闭我Statement的所有s(这将导致关联的ResultSets被关闭).

所以我想我的数据库访问是干净的,因为我试图让它们尽可能短,并且我不再需要它时立即释放所有资源.

然而,我仍然得到一个java.sql.SQLException: database is locked.

有什么我做得不好吗?我知道我没有显示任何代码,但是我必须发布大量代码并且它不相关.我只是问我是否在这里使用最佳实践,因为我认为我这样做,而且我仍然会遇到异常.

这是使用Java 1.6,Xerial.org的sqlite-jdbc-3.7.2驱动程序,在Mac OS 10.6 x64上

java sqlite jdbc

5
推荐指数
1
解决办法
5397
查看次数

泽西岛客户端 IPv6

我可以使用 Jersey Client 连接到使用 IPv6 的 REST 资源吗?

我收到此错误:

com.sun.jersey.api.client.ClientHandlerException: java.net.MalformedURLException: For input string: ":94ea:d2bc:c189:209c%10:8100"
    at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:128)
    at com.sun.jersey.api.client.Client.handle(Client.java:551)
    at com.sun.jersey.api.client.WebResource.handle(WebResource.java:556)
    at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:69)
    at com.sun.jersey.api.client.WebResource$Builder.put(WebResource.java:475)
    at com.bmc.aps.agent.jersey.JerseyClient.put(JerseyClient.java:168)
    at java.lang.Thread.run(Thread.java:619)
Caused by: java.net.MalformedURLException: For input string: ":94ea:d2bc:c189:209c%10:8100"
    at java.net.URL.<init>(URL.java:601)
    at java.net.URL.<init>(URL.java:464)
    at java.net.URL.<init>(URL.java:413)
    at java.net.URI.toURL(URI.java:1081)
    at com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:139)
    at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:126)
    ... 8 more
Run Code Online (Sandbox Code Playgroud)

在例外情况下,ip 被切断(:94ea:d2bc:c189:209c%10而不是fe80::94ea:d2bc:c189:209c%10)。在调试中,我可以看到 Web 资源 URI 正常。

java rest jersey ipv6

5
推荐指数
1
解决办法
1048
查看次数

如何使用AutoHotKey增加两次击键之间的输入时间

我在Windows 7中使用AutoHotKey脚本将剪贴板的内容作为一系列击键发送。我是AutoHotKey的新手,但我想知道是否有某种方法可以调整每次发送两次击键之间的时间。当前,脚本中的唯一一行如下:

^!k:: Send %clipboard%
Run Code Online (Sandbox Code Playgroud)

我希望能够将两次击键之间的时间(目前看来大约是每秒50个字符)增加到每秒10个字符。

我正在使用它来使用终端仿真器将击键发送到微控制器。我遇到的问题是,当我实际手动键入击键时,所有内容都会按原样进行注册,但是当我将剪贴板内容作为击键发送时,出现了问题,我希望减慢输入速度找出问题所在。本质上,在尝试另一个更复杂的解决方案之前,我想排除输入速度的问题。

如果有人有任何想法,将不胜感激。谢谢!

autohotkey

4
推荐指数
1
解决办法
4238
查看次数

Android:如果API级别低于21,则禁用内容转换动画

我正在尝试遵循材料设计模型,通过在活动之间进行活动时共享的视图来动画到新的位置/属性.我正在使用https://developer.android.com/training/material/animations.html上的指南.但是,这些动画需要API 21,我的应用程序需要达到更大的市场份额,所以我只想在设备具有适当的API级别时显示动画.我该如何做到这一点?

目前,我陷入了第一步.当我将该行添加<item name="android:windowContentTransitions">true</item>到我的style.xml时,我收到一个错误,因为我的最低API要求是11(我的目标是21).我发现的唯一解决方案是将最小API更改为21.

PS我正在使用Android Studio 1.0.1

java xml animation android android-studio

4
推荐指数
1
解决办法
1206
查看次数

如何注入SyncAdapter

我刚刚开始学习如何使用Dagger,并且已经将我的Backend连接类转换为自动注入.

该类处理Retrofit并执行网络请求.它曾经有静态方法,但现在它是一个对象,例如:

Backend.fetchPost(context, 42); // old way
mBackend.fetchPost(42); // mBackend is an injected field
Run Code Online (Sandbox Code Playgroud)

上下文用于检索AccountManager使用我的后端服务器提供OAuth令牌的上下文.现在自动注入.

这在活动和片段中效果很好,但我无法弄清楚如何注入我的SyncAdapter课程.
实际上,它是一个我无法控制的框架对象,并且AndroidInjections没有准备好注入这种类的静态方法.

这是我想要工作的代码:

/**
 * Handle the transfer of data between the backend and the app, using the Android sync adapter framework.
 */
public class SyncAdapter extends AbstractThreadedSyncAdapter {    
    @Inject
    public Backend mBackend; // can't use constructor injection,
                             // so might aswell use a public field

    public SyncAdapter(Context context, boolean autoInitialize) {
        super(context, autoInitialize);
    }

    public SyncAdapter(Context …
Run Code Online (Sandbox Code Playgroud)

android dependency-injection android-syncadapter dagger-2

4
推荐指数
1
解决办法
449
查看次数

加载活动时出现OutOfMemoryError

我有一个非常简单的活动:

public class SurvivalActivity extends Activity {
    private static final String KEY_LAYOUT_ID = "SurvivalLayoutId";
    int mLayoutId;
    private static final int[] mSurvivalLayouts = {
        R.layout.survival1,
        R.layout.survival2,
        R.layout.survival3,
    };

    @Override
    public void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        final Intent i = getIntent();
        if (savedInstanceState != null && savedInstanceState.containsKey(KEY_LAYOUT_ID)) {
            mLayoutId = savedInstanceState.getInt(KEY_LAYOUT_ID, 0);
        } else if (i != null) {
            mLayoutId = i.getIntExtra(KEY_LAYOUT_ID, 0);
        } else {
            mLayoutId = 0;
        }

        // Layout
        setContentView(mSurvivalLayouts[mLayoutId]);

        // Title
        Util.setTitleFont(this, findViewById(R.id.title));

        // "Next" button
        final …
Run Code Online (Sandbox Code Playgroud)

android out-of-memory

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

如何以编程方式锁定展开/折叠操作?

我想在特定的操作上保持这种布局:

初始布局

如今,我可以CoordinatorLayout通过对其进行滑动来折叠或扩展它.我想阻止这种行为.

android material-design android-coordinatorlayout android-collapsingtoolbarlayout

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

用命令输出替换可视选择

我想用选择的结果通过管道传递到命令中来替换一行的一部分。

例如:

echo "hello $(echo "world" | base64)" | vim -
Run Code Online (Sandbox Code Playgroud)

这将hello d29ybGQK在其中打开一个缓冲区。现在按下wvw以直观地选择d29ybGQK

然后,我尝试:!base64 -d并希望该缓冲区包含hello world,但没有发生。确实,整行都通过管道传递到命令中,并且替换了整行。

是否可以仅替换视觉选择,而仅将该选择通过管道传递到命令中?

我也尝试过,c<c-r>=system('base64 -d')但是没有将视觉选择发送到命令的标准输入。

vim

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

如何避免使用jetpack导航和底部选项卡的向上按钮?

我希望有类似YouTube的行为:

  • 有工具栏和底部标签
  • 转到“库”(第5个标签),没有出现向上按钮
  • 在“我的视频”中,出现向上按钮

这是我的约束:

  • 使用jetpack导航
  • 使用ToolbarAppBarLayout如果重要的话)
  • 有底部标签(BottomNavigationView
  • 在不改变Toolbar向上按钮的意义上,所有底部标签都是“顶层”
  • 其他应用程序屏幕不是“顶层”,应该有向上箭头
  • 选项卡之一是导航图的默认目标

默认情况下,当全部实现后,Jetpack导航库将自动处理导航。我使用此助手将工具栏与导航控制器挂钩:

NavigationUI.setupWithNavController(main_toolbar, navController)
Run Code Online (Sandbox Code Playgroud)

效果很好,但是如果我切换底部标签之一,则会显示向上按钮,然后按一下会弹回到默认目标位置。

当不使用底部标签时,这很好,但是当使用底部标签时,这很尴尬。

android android-toolbar bottomnavigationview android-jetpack android-architecture-navigation

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