Fuse Tools
  1. Fuse Tools
  2. FUSETOOLS-624

Cannot view route in UI editor when using prefix on <camelContext>

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Blocker Blocker
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: 2.1.0
    • Component/s: None
    • Labels:
      None
    • Similar Issues:
      Show 9 results 

      Description

      At the Berlin conference I created a new project using the Camel archetypes (spring based) and imported that into Fuse IDE.

      This morning I upgraded Fuse IDE to the latest RCP build, and when I double click the camel-context.xml file, the UI is empty. And I can find in the error log from Eclipse

      javax.xml.bind.UnmarshalException
       - with linked exception:
      [org.xml.sax.SAXParseException: The prefix "camel" for element "camel:camelContext" is not bound.]
      	at javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(AbstractUnmarshallerImpl.java:315)
      	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(UnmarshallerImpl.java:505)
      	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:206)
      	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:173)
      	at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:137)
      	at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:194)
      	at org.fusesource.camel.rider.util.RouteXml.unmarshal(RouteXml.scala:395)
      	at org.fusesource.camel.rider.util.RouteXml.unmarshal(RouteXml.scala:335)
      	at com.fusesource.rider.model.io.XmlContainerMarshaller.loadRoutesFromText(XmlContainerMarshaller.java:40)
      	at com.fusesource.rider.editor.editor.RiderDesignEditor.loadEditorText(RiderDesignEditor.java:1267)
      	at com.fusesource.rider.editor.editor.RiderDesignEditor.validateXml(RiderDesignEditor.java:1284)
      	at com.fusesource.rider.editor.editor.RiderDesignEditor.runIfTextModified(RiderDesignEditor.java:1392)
      	at com.fusesource.rider.editor.editor.RiderEditor.updatedTextPage(RiderEditor.java:651)
      	at com.fusesource.rider.editor.editor.RiderEditor.pageChange(RiderEditor.java:595)
      	at org.eclipse.ui.part.MultiPageEditorPart$2.widgetSelected(MultiPageEditorPart.java:290)
      	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:240)
      	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
      	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4128)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465)
      	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1270)
      	at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:2746)
      	at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1433)
      	at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:257)
      	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
      	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4128)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465)
      	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1270)
      	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3974)
      	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3613)
      	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
      	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
      	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
      	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
      	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
      	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
      	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
      	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
      	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
      	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
      	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
      	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
      	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      	at java.lang.reflect.Method.invoke(Method.java:597)
      	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
      	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
      	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
      Caused by: org.xml.sax.SAXParseException: The prefix "camel" for element "camel:camelContext" is not bound.
      	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
      	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174)
      	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388)
      	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
      	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:310)
      	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:626)
      	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3104)
      	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:922)
      	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
      	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
      	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
      	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
      	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
      	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
      	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
      	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
      	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:200)
      	... 50 more

      See screenshot

        Gliffy Diagrams

          Activity

          Hide
          Claus Ibsen added a comment -

          And the XML is

           
          <?xml version="1.0" encoding="UTF-8"?>
          <!--
              Licensed to the Apache Software Foundation (ASF) under one or more
              contributor license agreements.  See the NOTICE file distributed with
              this work for additional information regarding copyright ownership.
              The ASF licenses this file to You under the Apache License, Version 2.0
              (the "License"); you may not use this file except in compliance with
              the License.  You may obtain a copy of the License at
           
              http://www.apache.org/licenses/LICENSE-2.0
           
              Unless required by applicable law or agreed to in writing, software
              distributed under the License is distributed on an "AS IS" BASIS,
              WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
              See the License for the specific language governing permissions and
              limitations under the License.
          -->
           
          <!-- Configures the Camel Context-->
           
          <beans xmlns="http://www.springframework.org/schema/beans"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xmlns:camel="http://camel.apache.org/schema/spring"
                 xsi:schemaLocation="
                 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                 http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
           
            <camel:camelContext xmlns="http://camel.apache.org/schema/spring">
              <!-- here is a sample which processes the input files
                   (leaving them in place - see the 'noop' flag)
                   then performs content based routing on the message using XPath -->
              <camel:route>
                <camel:from uri="file:src/data?noop=true"/>
                <camel:choice>
                  <camel:when>
                    <camel:xpath>/person/city = 'London'</camel:xpath>
                    <camel:log message="UK message"/>
                    <camel:to uri="file:target/messages/uk"/>
                  </camel:when>
                  <camel:otherwise>
                    <camel:log message="Other message"/>
                    <camel:to uri="file:target/messages/others"/>
                  </camel:otherwise>
                </camel:choice>
              </camel:route>
            </camel:camelContext>
           
          </beans>

          Show
          Claus Ibsen added a comment - And the XML is   <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at   http://www.apache.org/licenses/LICENSE-2.0   Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -->   <!-- Configures the Camel Context-->   <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camel="http://camel.apache.org/schema/spring" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">   <camel:camelContext xmlns="http://camel.apache.org/schema/spring"> <!-- here is a sample which processes the input files (leaving them in place - see the 'noop' flag) then performs content based routing on the message using XPath --> <camel:route> <camel:from uri="file:src/data?noop=true"/> <camel:choice> <camel:when> <camel:xpath>/person/city = 'London'</camel:xpath> <camel:log message="UK message"/> <camel:to uri="file:target/messages/uk"/> </camel:when> <camel:otherwise> <camel:log message="Other message"/> <camel:to uri="file:target/messages/others"/> </camel:otherwise> </camel:choice> </camel:route> </camel:camelContext>   </beans>
          Hide
          Claus Ibsen added a comment -

          I am actually not sure whether the archetype creates the XML with camel: prefix or whatever. But we got this problem.

          Show
          Claus Ibsen added a comment - I am actually not sure whether the archetype creates the XML with camel: prefix or whatever. But we got this problem.
          Hide
          Claus Ibsen added a comment -

          Okay I just tried creating a new Fuse project using the wizard, and selecting camel-archetype-spring, and it generates an XML similar to above, which cannot be work with the UI editor.

          Show
          Claus Ibsen added a comment - Okay I just tried creating a new Fuse project using the wizard, and selecting camel-archetype-spring, and it generates an XML similar to above, which cannot be work with the UI editor.
          Hide
          James Strachan added a comment -

          Resolved; it was a regression introduced by the fix for ECLIPSE-455. Fix should be in 2.1.371 or later (build hopefully will be done in 2 hours...)

          Show
          James Strachan added a comment - Resolved; it was a regression introduced by the fix for ECLIPSE-455 . Fix should be in 2.1.371 or later (build hopefully will be done in 2 hours...)
          Hide
          James Strachan added a comment -

          fixed in 2.1.375

          Show
          James Strachan added a comment - fixed in 2.1.375

            People

            • Assignee:
              James Strachan
              Reporter:
              Claus Ibsen
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: