小编Rob*_*son的帖子

从Maven中的依赖项中排除类

我有一个项目取决于供应商控制的工件.此工件包含一些我依赖的类,以及一些较旧且导致问题的类.有没有办法让maven自动扩展jar,删除类,并将它们重新打包为依赖?我试着举个例子.

supplier:artifact:1.0.0
com.supplier.useful.ClassA
com.supplier.dto.ClassB (old)

us:dependency:1.1.20
com.supplier.dto.ClassB (new)

us:project-web:1.1.20
- supplier:artifact:1.0.0
- us:dependency:1.1.20
Run Code Online (Sandbox Code Playgroud)

所以 - 我需要ClassA在project-web中使用,但我需要使用ClassB来自dependency工件的.我无法修改供应商:工件,或我们:依赖.

有任何想法吗?!

java maven-2

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

Java Collection在满磁盘时写入磁盘?

一位同事提到他听说过一个轻量级的集合,当它的内容太满时会自动翻页到磁盘 - 但是他记不住这个名字.我想它看起来像这样:

PagingCollection<Serializable> pagingCollection = new PagingArrayList<>();
pagingCollection.setMaxSizeInMemory(500);
for (int x = 0; x < 1000; x++) { pagingcollection.add("x="+x); }
Run Code Online (Sandbox Code Playgroud)

然后将x = 0推到x = 500到磁盘.关键是能够迭代它而不将整个内容加载到内存中.

这适用于内存容量较小的胖客户端.

有谁知道它(或类似的东西)?

java collections

9
推荐指数
2
解决办法
1641
查看次数

使用Spring注释自动应用Hibernate Interceptor?

在我的服务类中,我需要可用的hibernate会话.我目前在beans.xml中执行此操作:

<bean id = "userDao" class="org.springframework.aop.framework.ProxyFactoryBean">
 <property name="target">
   <ref bean="userDaoTarget" />
 </property>

 <property name="proxyInterfaces">
   <value>com.app.dao.UserDao</value>
 </property>

 <property name="interceptorNames">
   <list>
     <value>hibernateInterceptor</value>
   </list>
 </property>

 <qualifier value="proxy" />
</bean>

...

<bean id="hibernateInterceptor" 
   class="org.springframework.orm.hibernate3.HibernateInterceptor">
 <property name="sessionFactory">
   <ref bean="sessionFactory" />
 </property>
<bean>
Run Code Online (Sandbox Code Playgroud)

(手工复制,可能是一些错别字..)

我正在使用注释而不是XML,我想知道是否有一种方法可以使用它们配置代理,因为我上面包括hibernate拦截器?如果没有 - 有没有办法可以减少XML的数量(大约7个DAO使它变得非常混乱)

java spring

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

有助于Eclipse RCP中的状态栏/修剪

我需要在Eclipse应用程序的状态栏中显示状态指示器.我无法通过ApplicationWindowAdviser(另一个团队拥有核心产品)做出贡献,但我确信我应该能够通过扩展点做出贡献.尽管有很多谷歌搜索,我找不到任何描述如何做到这一点.

eclipse-rcp

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

Java:基于注释的代码注入的简单技术?

有没有办法让这段代码有效?

LogonControl.java

@Audit(AuditType.LOGON)
public void login(String username, String password) {
 // do login
}
Run Code Online (Sandbox Code Playgroud)

AuditHandler.java

public void audit(AuditType auditType) {
 // persist audit
}
Run Code Online (Sandbox Code Playgroud)

最后一点是,每次调用login()时,都会调用audit(),并使用相应的audittype.

我想AOP可能就是这个的解决方案,但我希望它尽可能简单(我看过的AspectJ教程通常都有非常复杂的注释).

注意:我不想预定义将调用audit的方法,我是为可扩展框架编写的,其他人可能需要使用它.

java aop annotations

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

Spring:有一个简单的非网络教程吗?

我正在尝试创建一个Spring应用程序(不是Web应用程序)来执行一些简单的任务.最终他们将与网络上的其他一些Spring应用程序挂钩,但是现在我保持简单.我有一个CheckForNewItems类(扩展Timer),它被配置为每10秒运行一次.

我可以通过以编程方式调用它来确认它运行:

public class Tester {

  public static ApplicationContext context;

  private void loadContext() {
    String filename = "beans.xml";
    context = new FileSystemXmlApplicationContext(filename);
  }

  public static void main(String[] args) {
    Tester test = new Tester();
    test.loadContext();
    CheckNewItemsTask task = (CheckNewItemsTask)context.getBean("checkNewItemsTask");
  }
}
Run Code Online (Sandbox Code Playgroud)

运行此按预期工作,task.run()每10秒调用一次.现在我需要弄清楚如何将它部署到JBoss或Tomcat服务器,以便它自动开始运行任务.

我发现的大多数教程只描述了如何运行Spring MVC和servlet,而不是一个独立的应用程序.有谁知道更好吗?

干杯,罗布.

java jboss spring

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

在不同的网络上JBoss UnknownHostException

让JBoss在网络上工作时遇到了一些问题.作为一个快速概述,我们有一个开发网络(我称之为DEV)和一个客户端网络(比如说.. CLIENT!).它们通过防火墙连接.在Dev网络中,服务器称为192.168.100.50,在客户端网络上称为10.0.100.50.两个网络中的DNS通过DNS(sqlserver.dev.net)解析相关的IP.

sqlserver提供2个服务,一个通过.NET Web服务,另一个通过JBoss.在DEV网络上运行客户端时,两种服务都可以正常工作.在CLIENT网络上时,只有.NET服务可用.

尝试在以下代码中执行ContextLookup时,JBoss客户端抛出UnknownHostException:

Properties p = new Properties();
p.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
p.put("java.naming.factory.url.pkgs", "=org.jboss.naming:org.jboss.jnp.interfaces");
p.put("java.naming.provider.url", "sqlserver.dev.net:1199");

try {
  Context c = new InitialContext(p);
  cm = (ServiceRemote)c.lookup(Service.RemoteJNDIName);
} catch (NamingException e) {
  e.printStackTrace();
  throw new RuntimeException(e);
}
Run Code Online (Sandbox Code Playgroud)

例外情况是:

根异常是java.rmi.UnknownHostException:未知主机:SQLserver

我可以确认问题是客户端正在尝试连接到没有域名的'sqlserver'.这已经通过将'sqlserver'添加到客户端的主机文件中进行了测试,并且工作正常.另外,'SQLserver'的拼写很有趣,因为这是Windows主机报告主机名的方式,而不是它如何存储在DNS中.我最好的猜测是,一旦客户端进行初始连接,JBoss会告诉客户端将来连接到'SQLserver',客户端无法解析.

我已经尝试将以下系统属性设置为sqlserver的FQDN:

jgroups.bind_addr
bind.address
java.rmi.server.hostname

有没有人有任何想法?

java dns jboss rmi

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

标签 统计

java ×6

jboss ×2

spring ×2

annotations ×1

aop ×1

collections ×1

dns ×1

eclipse-rcp ×1

maven-2 ×1

rmi ×1