在以下 Web 服务中替换 mule 和 jetty 的替代方法是啥?

Posted

技术标签:

【中文标题】在以下 Web 服务中替换 mule 和 jetty 的替代方法是啥?【英文标题】:What is the alternative available for replacing mule and jetty in the below webservice?在以下 Web 服务中替换 mule 和 jetty 的替代方法是什么? 【发布时间】:2019-04-09 11:01:56 【问题描述】:

我需要在我的网络服务中离开 mule 和 jetty/jersey。我正在寻找一种替代方法来实现当前代码。

我正在像这样启动服务 -

org.mule.MuleServer -config deploy_jetty_jersey.xml

deploy_jetty_jersey.xml

http://www.mulesource.org/schema/mule/jetty/2.2 http://www.mulesource.org/schema/mule/jetty/2.2/mule-jetty.xsd http://www.mulesource.org/schema/mule/core/2.2 http://www.mulesource.org/schema/mule/core/2.2/mule.xsd http://www.mulesource.org/schema/mule/jersey/2.2 http://www.mulesource.org/schema/mule/jersey/2.2/mule-jersey.xsd http://www.mulesource.org/schema/mule/vm/2.2 http://www.mulesource.org/schema/mule/vm/2.2/mule-vm.xsd">

<jetty:connector name="httpConnector" useContinuations="true"
    configFile="jettyConfig.xml" />
<jetty:endpoint address="http://localhost:8080" name="serverEndpoint"
    path="html" synchronous="false" />

<model name="ServiceSample">
    <service name="testComponent">
        <inbound>
            <jetty:inbound-endpoint ref="serverEndpoint" />
        </inbound>
    </service>

    <service name="restTestHello" initialState="started">
        <inbound>
            <inbound-endpoint address="jersey:http://localhost:7003/rest"
                synchronous="true" />
        </inbound>
        <component>
            <singleton-object class="com.rest.RestResource" />
        </component>
    </service>
</model>

jettyConfig.xml

<Set name="handler">
    <New id="Handlers" class="org.mortbay.jetty.handler.HandlerCollection">
        <Set name="handlers">
            <Array type="org.mortbay.jetty.Handler">
                <Item>
                    <New id="Contexts" class="org.mortbay.jetty.handler.ContextHandlerCollection" />
                </Item>
                <Item>
                    <New id="DefaultHandler" class="org.mortbay.jetty.handler.DefaultHandler" />
                </Item>
                <Item>
                    <New id="StaticHandler" class="org.mortbay.jetty.handler.ResourceHandler" />
                </Item>
                <Item>
                    <New class="org.mortbay.jetty.handler.ContextHandler">
                        <Set name="contextPath">/</Set>
                        <Set name="resourceBase">
                            <SystemProperty name="jetty.home" default="." />
                            XXXXXX
                        </Set>
                        <Call name="addHandler">
                            <Arg>
                                <New class="org.mortbay.jetty.handler.ResourceHandler" />
                            </Arg>
                        </Call>
                    </New>
                </Item>
            </Array>
        </Set>
    </New>
</Set>
<Call name="addLifeCycle">
    <Arg>
        <New class="org.mortbay.jetty.deployer.WebAppDeployer">
            <Set name="contexts">
                <Ref id="Contexts" />
            </Set>
            <Set name="webAppDir">XXX</Set>
        </New>
    </Arg>
</Call>

<Set name="stopAtShutdown">true</Set>
<Set name="sendServerVersion">true</Set>
<Set name="sendDateHeader">true</Set>
<Set name="gracefulShutdown">1000</Set>

我需要一个使用类似 xml 结构的替代软件,这样 Java 的变化就会最小。

【问题讨论】:

向开放式问题提出建议确实不太适合***。你试过什么?为什么它不起作用? 您正在使用 org.mortbay.jetty,这是一个古老且很久以前的 EOL(生命终结)版本的 Jetty。 Jetty project moved to Eclipse 大约在 10 年前,并且仍在 org.eclipse.jetty 命名空间上维护。最新版本是9.4.15.v20190215 Mule 2.2 也是一个古老且过时的版本。 【参考方案1】:

显而易见的替代方案是迁移到更新的 Mule 版本并用 HTTP 侦听器替换码头连接器。如果您使用 RAML 文件定义 REST API,您还可以使用 APIKit 路由和验证。

【讨论】:

以上是关于在以下 Web 服务中替换 mule 和 jetty 的替代方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

在 mule3 webservice 中调用子流

用 mule 中的其他值替换 xml 特定节点元素值

Mule 2.2.6 - 处理 JMS 连接丢失的策略

如何在 Mule 中设置 ActiveMQ 消息头?

MULES 是修正输运方程的正确选择吗? [开放泡沫]

Mule ESB:无法使用流有效负载复制消息