Skip to content

MLP DTD files should not be copied to the server bin directory if we can avoid it #47

Description

@angrygreenfrogs

This is in reference to #12, where a fix was applied to copy in some missing DTD files that the GMLC was looking for.

The error originally occurred during unmarshalling of the incoming MLP XML request, like this:

16:29:51,912 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1) Error parsing document (line 1, col 40)
16:29:51,913 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1) com.ctc.wstx.exc.WstxParsingException: (was java.io.FileNotFoundException) /home/eross/RestComm/jboss-5.1.0.GA/bin/MLP_SVC_INIT_310.DTD
 at [row,col {unknown-source}]: [1,88]
16:29:51,913 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:630)
16:29:51,914 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:461)
16:29:51,915 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at com.ctc.wstx.sr.ValidatingStreamReader.findDtdExtSubset(ValidatingStreamReader.java:475)
16:29:51,916 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at com.ctc.wstx.sr.ValidatingStreamReader.finishDTD(ValidatingStreamReader.java:358)
16:29:51,917 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at com.ctc.wstx.sr.BasicStreamReader.skipToken(BasicStreamReader.java:3349)
16:29:51,918 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:1988)
16:29:51,919 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1069)
16:29:51,919 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at org.jibx.runtime.impl.StAXReaderWrapper.next(StAXReaderWrapper.java:293)
16:29:51,919 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at org.jibx.runtime.impl.UnmarshallingContext.toStart(UnmarshallingContext.java:446)
16:29:51,920 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at org.jibx.runtime.impl.UnmarshallingContext.unmarshalElement(UnmarshallingContext.java:2750)
16:29:51,920 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at org.jibx.runtime.impl.UnmarshallingContext.unmarshalDocument(UnmarshallingContext.java:2900)
16:29:51,920 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at org.mobicents.gmlc.slee.mlp.MLPRequest.parseRequest(MLPRequest.java:47)
16:29:51,920 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at org.mobicents.gmlc.slee.MobileCoreNetworkInterfaceSbb.onPost(MobileCoreNetworkInterfaceSbb.java:375)
16:29:51,920 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
16:29:51,920 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
16:29:51,921 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
16:29:51,921 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at java.lang.reflect.Method.invoke(Method.java:606)
16:29:51,921 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at org.mobicents.slee.runtime.sbbentity.SbbEntityImpl.invokeEventHandler(SbbEntityImpl.java:479)
16:29:51,921 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at org.mobicents.slee.runtime.eventrouter.routingtask.EventRoutingTaskImpl.routeQueuedEvent(EventRoutingTaskImpl.java:379)
16:29:51,922 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at org.mobicents.slee.runtime.eventrouter.routingtask.EventRoutingTaskImpl.run(EventRoutingTaskImpl.java:126)
16:29:51,923 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at org.mobicents.slee.runtime.eventrouter.EventRouterExecutorImpl$EventRoutingTaskStatsCollector.run(EventRouterExecutorImpl.java:72)
16:29:51,923 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
16:29:51,923 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
16:29:51,924 ERROR [STDERR] (SLEE-EventRouterExecutor-5-thread-1)       at java.lang.Thread.run(Thread.java:745)
16:29:51,924 INFO  [MobileCoreNetworkInterfaceSbb] (SLEE-EventRouterExecutor-5-thread-1) Exception while unmarshalling XML request data: Error parsing document (line 1, col 40)
16:29:51,925 INFO  [MobileCoreNetworkInterfaceSbb] (SLEE-EventRouterExecutor-5-thread-1) Generated response XML: <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svc_result SYSTEM "MLP_SVC_RESULT_310.DTD">
<svc_result xmlns="MLP_SVC_RESULT_310.dtd" ver="3.1.0">
    <slia ver="3.1.0">
        <result resid="105">FORMAT ERROR</result>
        <add_info>System Failure: Invalid XML received: Error parsing document (line 1, col 40)</add_info>
    </slia>
</svc_result>
16:29:51,932 INFO  [MobileCoreNetworkInterfaceSbb] (SLEE-EventRouterExecutor-5-thread-1) HTTP Request received and response sent.

The fix was to add the missing DTD files and copy them in to the jboss bin directory like this in build.xml

        <echo>Copy MLP DTD files</echo>
        <copy todir="${release.dir}/jboss-5.1.0.GA/bin" failonerror="true">
            <fileset dir="${restcomm.gmlc.dir}/core/bootstrap/src/main/config/dtd">
                    <include name="**" />
            </fileset>
        </copy>

This seems like an inefficient solution, so although it works for right now, we should eventually try to find a better way.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions