Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.NoSuchMethodException:未知属性';语言';在课堂上';类java.lang.class';_Java_Hibernate_Rest - Fatal编程技术网

java.lang.NoSuchMethodException:未知属性';语言';在课堂上';类java.lang.class';

java.lang.NoSuchMethodException:未知属性';语言';在课堂上';类java.lang.class';,java,hibernate,rest,Java,Hibernate,Rest,我收到以下错误信息: java.lang.NoSuchMethodException: Unknown property 'language' on class 'class java.lang.Class' 使用的Rest调用:/Test/Rest/Languages/insertobj/Japanese/Swedish%206 我正在使用:org.apache.commons.beanutils.PropertyUtils 我的Languages类中确实有指定的属性“language”,所

我收到以下错误信息:

java.lang.NoSuchMethodException: Unknown property 'language' on class 'class java.lang.Class'
使用的Rest调用:/Test/Rest/Languages/insertobj/Japanese/Swedish%206

我正在使用:org.apache.commons.beanutils.PropertyUtils

我的Languages类中确实有指定的属性“language”,所以我不确定它为什么会抛出错误。当我声明其为:

Languages lanobj=新的Languages()

//语言课

public class Languages implements java.io.Serializable {
    private String language;
    private String displayName;

public Languages() {
        this.language = null;
        this.displayName = null;
    }


public Languages(String language, String displayName) {
    this.language = language;
    this.displayName = displayName;
}

public void setLanguageId(Long languageId) {
    this.languageId = languageId;
}

@Column(name = "language", nullable = false, length = 50)
public String getLanguage() {
    return this.language;
}

public void setLanguage(String language) {
    this.language = language;
}

@Column(name = "displayName", nullable = false, length = 50)
public String getDisplayName() {
    return this.displayName;
}

public void setDisplayName(String displayName) {
    this.displayName = displayName;
}

}
///资源管理器代码

@Path("{subResources}/insertobj/{language-id}/{displayname-id}")
//@POST 
@GET // Using get for the sake of making rest call with browser
@Produces(MediaType.TEXT_HTML)
public String getLanguageById(@PathParam("subResources") String id,
                            @PathParam("language-id") String language_id,
                            @PathParam("displayname-id") String displayname_id) 
{
    try{
        Class<?> c = Class.forName("com.test."+id);
        PropertyUtils.setProperty(c, "language",language_id);
        PropertyUtils.setProperty(c, "displayName",displayname_id);
        TransactionManager.createObject(c);     

    }catch (Exception exc){
        exc.printStackTrace();      
    }

}

由于您的类
语言
未定义默认构造函数,beanutils无法执行反射。请确保您的类中已定义默认构造函数。

由于您的类
语言
未定义默认构造函数,beanutils无法执行反射。请确保您在类中定义了默认构造函数。

您正在尝试为
“com.test.+id
在类对象上设置属性
语言。您需要创建此类的实例来设置其值。比如:

try{
    Class<?> c = Class.forName("com.test."+id);
    Object o = c.newInstance();
    PropertyUtils.setProperty(o, "language",language_id);
    PropertyUtils.setProperty(o, "displayName",displayname_id);
    TransactionManager.createObject(o);     

}catch (Exception exc){
    exc.printStackTrace();      
}
试试看{
c类=Class.forName(“com.test.”+id);
对象o=c.newInstance();
设置属性(o,“语言”,语言id);
PropertyUtils.setProperty(o,“displayName”,displayName\u id);
TransactionManager.createObject(o);
}捕获(异常exc){
exc.printStackTrace();
}

c
引用的类必须具有零参数构造函数,此代码才能工作。

您正在尝试为
“com.test.+id
在类对象上设置属性
语言。您需要创建此类的实例来设置其值。比如:

try{
    Class<?> c = Class.forName("com.test."+id);
    Object o = c.newInstance();
    PropertyUtils.setProperty(o, "language",language_id);
    PropertyUtils.setProperty(o, "displayName",displayname_id);
    TransactionManager.createObject(o);     

}catch (Exception exc){
    exc.printStackTrace();      
}
试试看{
c类=Class.forName(“com.test.”+id);
对象o=c.newInstance();
设置属性(o,“语言”,语言id);
PropertyUtils.setProperty(o,“displayName”,displayName\u id);
TransactionManager.createObject(o);
}捕获(异常exc){
exc.printStackTrace();
}

c
引用的类必须具有零参数构造函数,此代码才能工作。

setProperty
需要一个实例,而您正在传递该类,请参阅


setProperty
需要一个实例,而您正在传递该类,请参见


我添加了一个默认构造函数,但仍然会遇到相同的错误。检查上面的代码编辑。ThanksI添加了一个默认构造函数,但我仍然收到相同的错误。检查上面的代码编辑。谢谢这与hibernate和rest无关。顺便说一句,谢谢你,它成功了。抱歉,我不确定要使用什么标记:)这与hibernate和rest无关。顺便说一句,谢谢你,它成功了。抱歉,我不确定使用什么标签:)我没有投票否决你,但你最初的答案是三行代码,没有解释。稍后,您已将文本转换为实际答案。有些人认为这是坏的风格。我没有投票给你,但你原来的答案是三行代码,没有解释。稍后,您已将文本转换为实际答案。有些人认为它的风格不好。
Class<?> c = Class.forName("com.test."+id);
Language language = (Language)c.newInstance();
PropertyUtils.setProperty(language , "language",language_id);
Object object  = Class.forName("com.test."+id).newInstance();
PropertyUtils.setProperty(object, "language",language_id);