小编Boz*_*zho的帖子

如何在Java中创建接口的代理?

如何在不创建实现它的类的情况下为接口创建代理?

我有一个具体的例子:我有一个接口,Contact,需要创建一个充当联系人的代理对象.此代理对象将用于运行一些TestNG测试.

我尝试过使用JDK方法,但只能找到需要实际实现该接口的示例.

我还发现jasssist可以帮助我解决这个问题,并尝试实现一个似乎有效的简单示例,直到我出现Out of Memory错误.这是我正在做的事情的片段:

import javassist.util.proxy.MethodFilter;
import javassist.util.proxy.MethodHandler;
import javassist.util.proxy.ProxyFactory

protected final T createMock(final Class<T> clazz) {
    final ProxyFactory factory = new ProxyFactory();
    factory.setInterfaces(new Class[] { clazz });
    factory.setFilter(new MethodFilter() {
        public final boolean isHandled(final Method m) {
            // ignore finalize()
            return !m.getName().equals("finalize");
        }
    });

    final MethodHandler handler = createDefaultMethodHandler();
    try {
        return (T) factory.create(new Class<?>[0], new Object[0], handler);
    } catch (final Exception e) {
        e.printStackTrace();
    }
    return null;
}
private MethodHandler createDefaultMethodHandler() {
    return new MethodHandler() { …
Run Code Online (Sandbox Code Playgroud)

java proxy mocking dynamic-proxy

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

为什么我不喜欢使用Facebook Graph API发表评论?

我正在使用Graph API为我实现一个解决方案,此时,我可以发布到我的Feed,如帖子,评论它们,但我不能喜欢评论(没有一个) ,我收到消息:未捕获OAuthException:(#100)参数url是必需的.谁能帮忙?

php facebook facebook-graph-api

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

java.awt.Desktop的问题

我的程序中有一个按钮,当按下时,它会带你到我的wiki页面关于该程序.我使用以下行来执行此操作:

java.awt.Desktop.getDesktop().browse(new java.net.URI("http://supuh.wikia.com/wiki/BHT"));
Run Code Online (Sandbox Code Playgroud)

问题是,无论程序运行的环境如何,我总是会收到以下错误:

java.security.AccessControlException: access denied (java.awt.AWTPermission showWindowWithoutWarningBanner)
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?请注意,这仅适用于一个程序.我制作的任何其他程序都可以使用相同的方法,没有问题.

退出钩子


在我的程序开始时,添加了这个钩子.没有它,程序运行良好......

System.setSecurityManager(new SecurityManager()
{
  @Override
  public void checkExit(int status)
  {
    closeFile(status);
  }
});
Run Code Online (Sandbox Code Playgroud)

需要这个钩子,但是这个browse(URI uri)方法不适用于它.解决方案?

java awt

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

嵌入式数据库是否支持PL/SQL和Java API?

我正在寻找带有Java API的嵌入式数据库用于测试目的.我还需要pl/sql支持,因为我们在生产中使用oracle,迁移是用pl/sql编写的.

我想测试我的DAO对象,我需要在使用迁移脚本进行单元测试的过程中在内存中创建db.

现在我们使用HSQLDB,但它不支持pl/sql.

你能推荐一下吗?

java plsql embedded-database

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

spring 3 @controller无法注入具有@Transactional的服务对象

我正在使用Spring 3 MVC,我在注入Objects时遇到了问题.我创建了控制器对象@Controller.我用@ServiceObject 创建了一个服务对象.我用AutoWire在服务器中注入了服务对象.我创建了DAO对象,并注入了服务对象,并测试了应用程序,它运行正常.然后我戴上@Transactional了DAO,然后它也运行良好.但是,当我把@Transactional服务对象,它给我的问题.在部署时,在控制器上它称为"

上下文初始化失败:org.springframework.beans.factory.BeanCreationException:创建名为'loginController'的bean时出错:注入自动连接的依赖项失败; 嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配方法:public void com.erudicus.controller.LoginController.setLoginService(com.erudicus.model.service.LoginServiceImpl); 嵌套异常是java.lang.IllegalArgumentException:参数类型不匹配".

这是代码控制器

@Controller
public class LoginController {
     private static Logger LOG = Logger.getLogger(LoginController.class);

    private LoginServiceImpl loginService = null;


    public LoginServiceImpl getLoginService() {
        return loginService;
    }

    @Autowired
    public void setLoginService(LoginServiceImpl loginService) {
                this.loginService = loginService;
    }

    @RequestMapping(value="/login" , method= RequestMethod.GET)
    public String login(Model model) {
        model.addAttribute(new Login());
            return "login";
    }

    @RequestMapping(value="/loginDetails", method=RequestMethod.POST)
    public ModelAndView create(@Valid Login login, BindingResult result) {
      }
}
Run Code Online (Sandbox Code Playgroud)

服务对象

@Service
public …
Run Code Online (Sandbox Code Playgroud)

java spring transactions spring-mvc

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

环境特定构建与加载环境特定属性

构建的一个选项是在构建时打包特定于环境的属性(例如,使用maven配置文件)

另一个选择是设置-Denv=production您的生产环境,并在启动时加载/${env}/config.properties.(春天允许这样,但它可以手动完成)

我用过这两个.前者意味着没有额外的环境配置.后者允许在多个环境中使用相同的构建.

问题:任何其他重要的利弊,或几乎相同的方法将被选择?

相关:加载特定于环境的属性以与PropertyPlaceholderConfigurer一起使用?

java deployment build

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

从java.lang.Object访问clone()

这是我无法理解的.

在java.lang.Object所述clone()与定义protected改性剂.根据定义,它可以通过名称在其自己的类定义中访问,通过名称在从它派生的任何类中,并通过名称在同一个包中的任何类的定义中.

这里的Sample类在另一个包中,显然它无法clone()从Object类中访问.但是,由于Sample隐含地来源Object,为什么它无法访问它?该定义并未说明它必须满足两个条件(在同一个包内并且也是一个子类).

public class Sample {

  public Object foo() throws CloneNotSupportedException {
   ... 
   return someObject.clone();
  }
}
Run Code Online (Sandbox Code Playgroud)

java oop clone access-modifiers

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

JPA 字符映射

我对 JPA 还很陌生,正在尝试进行基本的实体设置。

我知道表属性映射到 java 类型,例如映射到字符串的 varchar。

在我的表中,我有一个列代码,它是一个char(2), 并存储一个两个字母的代码。

我将如何在实体中使用它?我尝试使用字符串,但似乎这不是要使用的正确映射。

java database jpa jpa-2.0

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

每个DAO中的EntityManager配置

我知道这是一个很长的问题,但我想问一切,因为我已经坚持这些东西超过2周,而且我在这个星期内解决这个问题.请指导我这件事.

我正在使用EclipseLink jpa版本2,Spring 3,jdk6,MySQL5和tomcat7.

我在每个DAO类中都配置了以下内容.

@PersistenceContext
private EntityManager em;
Run Code Online (Sandbox Code Playgroud)

我在Spring xml中有以下内容:

<bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"  id="dataSource">
    <property name="url" value="jdbc:mysql://localhost:3306/xxxxx"/>
    <property name="username" value="xxxx"/>
    <property name="password" value="xxxx"/>
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
</bean>

<bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" id="entityManagerFactory">
    <property name="dataSource" ref="dataSource"/>
    <property name="jpaVendorAdapter" ref="jpaVendorAdapter"/>
    <property name="jpaDialect" ref="jpaDialect"/>
</bean>

<bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory"/>
    <property name="jpaDialect" ref="jpaDialect"/>
</bean>

<bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter" >
    <property name="showSql" value="true"/>
    <property name="generateDdl" value="true" />
</bean>

<bean id="jpaDialect" class="org.springframework.orm.jpa.vendor.EclipseLinkJpaDialect"/>
Run Code Online (Sandbox Code Playgroud)

来自Persistence.xml:

<persistence-unit name="xxxxx" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<-- class mappings -->
</persistence-unit>
Run Code Online (Sandbox Code Playgroud)

我对自己的所作所为感到困惑:

  1. 是EntityManager春天注射的吗?(我知道这 …

java spring jpa eclipselink java-ee

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

在获取双向集合时如何避免Hibernate中的无限循环?

我试图在一个非常简单的Hibernate示例中填充一些实体对象.我的数据库由两个表组成,"部门"(Id,Name)和"Employees"(Id,DepartmentsId,FirstName,LastName).我的SQL查询只是Employees与Departments的左连接.

我已经设置了Hibernate文档中指定的注释,但每当我尝试序列化实体时,Hibernate进入无限循环并最终抛出StackOverFlowError异常.回答我的另一个问题的人能够确定堆栈溢出正在发生,因为"Department"对象包含一组"Employee"对象,每个对象都包含一个"Department"对象,其中包含一组Employee对象等.等等

根据上面链接的文档,这种类型的双向关系应该是合法的(Department中的"mappedBy"参数应该用来表示Hibernate;我也尝试使用在下面的代码中注释掉的"joinColumn"注释)我读过的其他内容表明Hibernate 应该足够聪明,不要在这种情况下进入无限循环,但它不适用于我的例子.如果我通过从Employee类中删除Department对象将双向关系更改为单向关系,一切正常,但显然这会导致丢失大量功能.

我还尝试了旧的xml映射文件的注释,并为子表设置了"inverse"参数,但它仍然会产生同样的问题.我怎样才能使这种双向关系按照预期的方式运行?

部门:

package com.test.model;

import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.JoinTable;

import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.JoinColumn;

import org.hibernate.Hibernate;
import org.hibernate.proxy.HibernateProxy;

@Entity
@Table(name="Departments"
,catalog="test"
)
public class Department implements java.io.Serializable {

 private Integer id;
 private String name;
 public Set<Employee> employees = new HashSet<Employee>(0);

public Department() {
}


public Department(String name) {
    this.name = name;
}
public Department(String name, Set employees) { …
Run Code Online (Sandbox Code Playgroud)

java hibernate struts2

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