gpt4 book ai didi

http - Mule 在 http 端点上创建 wsdl

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:11:21 25 4
gpt4 key购买 nike

我想知道 Mule 是否会在 http 端点上创建一个 wsdl,以便我可以通过 soapUI 访问它。我正在传递带有肥皂信封的 xml,如下所示。我没有创建 wsdl,但之后我有一个流程来读取和使用传入的这个 xml。我知道使用其他 ESB 工具可以说这个端点需要公开一个 wsdl,它会创建一个用于你在构建。骡子会做这样的事情吗?

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<lookup>
<bookid>0028634748</bookid>
</lookup>
</soapenv:Body>

感谢您的宝贵时间。

最佳答案

Mule 可以即时生成 WSDL,但它需要某些东西 来从中推断出 WSDL。它可以从纯 POJO 组件完成,不需要任何 JAX-WS 注释,并且配置如下:

<flow name="bookLookupService">
<http:inbound-endpoint address="http://localhost:8181/bls"
exchange-pattern="request-response">
<cxf:simple-service serviceClass="com.acme.BookLookupService" />
</http:inbound-endpoint>
<component class="com.acme.BookLookupServiceImpl" />
</flow>

界面如下:

package com.acme;

public interface BookLookupService
{
public static class BookLookup
{
private String bookid;

public String getBookid()
{
return bookid;
}

public void setBookid(final String bookid)
{
this.bookid = bookid;
}
}

public static class Book
{
private String bookid, name;

public String getBookid()
{
return bookid;
}

public void setBookid(final String bookid)
{
this.bookid = bookid;
}

public String getName()
{
return name;
}

public void setName(final String name)
{
this.name = name;
}
}

Book lookup(final BookLookup bookLookup);
}

和实现:

package com.acme;

public class BookLookupServiceImpl implements BookLookupService
{
public Book lookup(final BookLookup bookLookup)
{
final Book book = new Book();
book.setName("LOTR");
book.setBookid(bookLookup.getBookid());
return book;
}
}

问题是 WSDL 将不符合上面预期的消息,您最终得到这样的消息:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:acme="http://acme.com/" xmlns:acme1="http://acme.com">
<soapenv:Header/>
<soapenv:Body>
<acme:lookup>
<acme:arg0>
<acme1:bookid>ABC123</acme1:bookid>
</acme:arg0>
</acme:lookup>
</soapenv:Body>
</soapenv:Envelope>

如果您想要对生成的 WSDL 进行更严格的控制,您将不得不使用 JAX-WS/JAXB 注释。

关于http - Mule 在 http 端点上创建 wsdl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12979198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com