当前位置: 首页 > 知识库问答 >
问题:

JAXB的变化没有反映在肥皂反应中

段干庆
2023-03-14

我有一个非常简单的Web服务实现,如下所示

package implementation;

import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService
public class WhatsMyName {

@WebMethod
public String getMyName(){
    return "John Smith";
}

}

我在我的实现类文件上运行了一个wsgen来生成JAXB类和WSDL(以及XSD)

尝试调用此方法时的SOAP响应如下

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:getMyNameResponse xmlns:ns2="http://implementation/">
         <return>John Smith</return>
      </ns2:getMyNameResponse>
   </S:Body>
</S:Envelope> 

如果我想生成如下响应,我该怎么办

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:NameResponse xmlns:ns2="http://implementation/">
         <Name>John Smith</Name>
      </ns2:NameResponse>
   </S:Body>
</S:Envelope>

我确实尝试将生成的(由wsgen)JAXB响应类更改为具有@XmlType(name = “NameResponse”,namespace = “http://implementation/”)和@XmlRootElement(name = “NameResponse”,namespace = “http://implementation/”),但肥皂响应xml仍然保持不变。

每当我尝试将同一个响应类中的@XmlElement(name = "return ",namespace = " ")更改为@XmlElement(name = "Name ",namespace = " ")时,在执行发布此web服务实现的发布程序时,我都会得到下面的运行时错误。

WebServiceException: class implementation.jaxws.GetMyNameResponse do not have a property of the name return 

我刚开始学习SOAP,我用谷歌搜索了这个例外,但没有有效的解决方案。

共有1个答案

墨高杰
2023-03-14

我想你正在寻找注释@WebResult

在这种情况下,代码可能是< br >

@WebService
public class WhatsMyName {

@WebMethod
@WebResult(name = "Name")
public String getMyName(){
    return "John Smith";
}
 类似资料:
  • 问题内容: 我创建了一个TableView,并向每个TableColumns注册了Properties。内部数据的编辑本身可以很好地反映在TableView中。 但是,使用ListView则是另一回事。除非关闭框架并再次打开,否则更改不会立即显示。 我的ListView包含ActionSteps。请注意,我使用了Javafx bean属性。 我的ListView也使用ObservableList。

  • 问题内容: 我正在尝试加载对象(.obj)文件以与three.js一起使用并做出反应(使用react-three-renderer),但得到的My代码如下: 但是,我不断得到:“在’三个’中找不到导出’OBJLoader’(导入为’三个’)有人有主意吗? 问题答案: 因此,似乎添加到react组件上就可以了(怪异,是吗?)。所以我的代码目前看起来像:

  • 我只是无法在本地主机设置中获得要更改的php_info()值,或者相关的phpMyAdmin最大文件大小。 因此,我找到了phpinfo声明正在加载的PHP文件。我更改了三个参数: upload_max_filesize 贴纸最大尺寸 内存限制 保存文件,重启Apache和MySQL,重新加载phpinfo()页面...没有变化。 我也试着放一个。web根文件夹中的htaccess文件,其中包含对

  • 我试图在同一个事务中执行3个插入,但当其中一个插入失败时,我无法回滚事务。 我是反应式世界的新手,这是我的第一个反应式应用。 下面是数据库模型的简化: 我想在同一事务中执行以下插入: 但是,当第二次插入失败时,第一次插入不会回滚。 我有以下课程: :接收来自Kafka的消息,并通过服务触发插入 :使用3个DAO运行3个插入 :运行实体A的插入 :运行实体B的插入 :运行实体C的插入 和类似于。 我

  • 问题内容: import React, { Component } from ‘react’; 通常我看到的是,如果他使用es6类,人们会在构造函数中执行this.state。如果不是,他可能会使用getinitialstatestate函数放置状态。但是上面的代码(是的,这是一个有效的代码),两者都没有使用。我有2个问题,这里的状态是什么?那是局部变量吗?如果是,为什么没有?prevState来

  • 我在CentOS机器上启用标题中提到的模块时遇到了一些问题。 百胜安装php-mCrypt/php-soc/php-mysql工作正常,并提到它们已经安装,重新启动Apache后,似乎它们没有启用。 例如,我无法定位mcrypt.so,运行php--ini会给出: 这是在我放置extension=mcrypt之后。所以在php中。伊尼。