Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.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 Liferay Json Web服务参数输入_Java_Liferay_Liferay 6 - Fatal编程技术网

Java Liferay Json Web服务参数输入

Java Liferay Json Web服务参数输入,java,liferay,liferay-6,Java,Liferay,Liferay 6,I用户Liferay 6.2 我使用ServiceBuilder创建了一个实体(notizia) 我生成了Web服务。 我有一种打印字符串的方法,如下所示: public class notiziaServiceImpl extends notiziaServiceBaseImpl { @Override @AccessControlled(guestAccessEnabled=true) public String printMyString() {

I用户Liferay 6.2 我使用ServiceBuilder创建了一个实体(notizia)

我生成了Web服务。 我有一种打印字符串的方法,如下所示:

public class notiziaServiceImpl extends notiziaServiceBaseImpl {

    @Override
    @AccessControlled(guestAccessEnabled=true)
    public String printMyString()
    {
        return "i'm the string ";
    }
}
它起作用了! 我添加了另一个带有输入参数的方法

@AccessControlled(guestAccessEnabled=true)  
    public String getHelloWorld(String worldName) 
                    throws com.liferay.portal.kernel.exception.PortalException,
                    com.liferay.portal.kernel.exception.SystemException {
        return "Hello world: " + worldName;
    }
“getHelloWorld”方法不起作用。 我在控制台中遇到了以下错误:

[MethodParametersResolverImpl:59] java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
我不知道我错过了什么。
如何解决此问题?

当您向XxxServiceImpl类添加新方法时,您始终必须重建服务


ServiceBuilder将正确的内容注入父类等,以确保该方法已注册并可用于远程API调用。

这与Java版本有关。尝试使用Java8构建和部署您的服务。经过两天的研究,它对我起了作用

我认为问题在于
Liferay正在使用jodd.asm5(检查异常跟踪的第一行),我检查了jodd站点,他们在Java8之后不支持它。不知道Liferay是怎么用的。

谢谢你的回答@Dhruv Pandey!你救了我一天(或几天)

顺便说一句,我想指出,即使在你发布的Jodd链接中,他们说:“Jodd可以在任何有合适的Java8运行时环境的平台上使用。”这并不意味着我们不能在运行Java11的服务器上使用它

这里重要的是,我们部署的工件将目标运行时环境设置为Java8,否则我们将得到异常

因此,我正在Java 11中运行Liferay 7.2实例,并在我的服务pom.xml的构建插件中进行了以下配置:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source>
                <target>11</target>
            </configuration>
        </plugin>
        ...
    </plugins>
<build>

org.apache.maven.plugins
maven编译器插件
3.8.1
1.8
11
...
这是抛出错误。我所做的是将配置更改为以下内容:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        ...
    </plugins>
<build>

org.apache.maven.plugins
maven编译器插件
3.8.1
1.8
1.8
...

之后,错误就消失了。

如何调用该方法?您是否在(内存中)
localhost:8080/API/jsonws
尝试了API浏览器?如果粘贴整个类源,效果会更好。我要粘贴哪个类源?是的,我总是重建服务,但我总是会遇到此错误