HTML relative file paths
We often use relative file paths to reference a source. Let’s assume we have the web structure like the below:
How do we add images to the travel.html file? (more…)
View On WordPress
seen from United States
seen from China
seen from Canada

seen from Egypt
seen from China

seen from Russia

seen from Belgium
seen from China
seen from China
seen from China
seen from China

seen from United States
seen from United Kingdom
seen from China
seen from Canada

seen from Maldives
seen from Vietnam
seen from United States

seen from Maldives

seen from Italy
HTML relative file paths
We often use relative file paths to reference a source. Let’s assume we have the web structure like the below:
How do we add images to the travel.html file? (more…)
View On WordPress
When making projects with Python, watch out for your file directory design!
When making projects with Python, watch out for your file directory design! Don't do relative implicit imports! http://stackoverflow.com/questions/7505988/importing-from-a-relative-path-in-python http://legacy.python.org/dev/peps/pep-0008/ http://stackoverflow.com/questions/20706335/python-module-imports-explicit-vs-implicit-relative-imports
WSDL import crashes Siebel Tools
Importing a WSDL in Siebel Tools using the New Object Wizard is pretty straightforward. The only thing you need to do in order to import to WSDL into Siebel Tools, is to save it localy. However there is a case in which Siebel Tools could fail to import the wsdl.
Let me explain.
Most WSDL files import one or more XML Schema definitions using: http://server_path/xsd_filename.xsd">. In order to import this WSDL into Siebel you need to save localy the WSDL and all the xsd files that are imported in the WSDL. Let's say that the WSDL file contains the following code (I've removed the namespaces to keep it clear) :
http://server_path/xsd01.xsd">
http://server_path/xsd02.xsd">
Then you need to save the WSDL file and in the same folder you should also save the files: xsd01.xsd and xsd02.xsd. Then you need to edit the WSDL file so that the path now points to the local xsd files instead of the ones at the server. So, the result would be:
wsdl01.wsdl
Now you can import the WSDL into Siebel Tools without a problem.
The case that I mentioned earlier is a little different. The WSDL structure is a little more complex. The difference is that the WSDL file imports another WSDL file which imports all the XSD definitions. This is done using:
wsdl01.wsdl
http://server_path/wsdl02.wsdl" />
wsdl2.wsdl contains all the XSD definition files (XML Schemas).
If you save locally both the WSDL files and all the XSD files and change the paths to point to the local files, such as these:
wsdl01.wsdl
wsdl02.wsdl
then the Siebel tools will fail to import the WSDLs and throw the error:
Errors during processing: There are no web service definitions to be generated.(SBL-EAI-04340) Following are warnings generated in the process: Service 'Service-Name' can not be imported, because none of its ports could be imported.(SBL-EAI-04333)
Port 'BasicHttpBinding_ServiceContract' can not be imported. PortType 'ServiceContract' can not be imported. The operation 'OperationName' was ignored. EAI Common Internal Error: Cannot find schema with targetNamespace: 'Namespace' (SBL-UNU-00133)
Also, if you enable the local logs in Siebel Tools (local siebdev.log) you will see one more error:
XML Conversion Service Internal Error: Unable to read XML from URL 'xsd0.xsd' and Base URL 'wsdl02.wsdl': The base part of the URL cannot be relative(SBL-UNU-00248) (IDS_XMLCNV_ERR_INTERNAL)
According to this error the base part of the URL cannot be relative.
OK, which URL of all?
The answer is tricky but rather simple. Siebel try to read the xsd0.xsd file but cannot locate it because the file that imports it has been imported into Siebel using a relative path. So Siebel gets confused and do not understand what is the path of the xsd0.xsd. Siebel asks the file that imports the XSD files to have an absolute path (aka not relative). So if we leave all paths relative and change only the first WSDL so that it imports the second WSDL using an absolute path such as this:
wsdl01.wsdl
wsdl02.wsdl
then everything will work perfectly.
One more thing. Do not change all the paths of all files to absolute such as these:
wsdl01.wsdl
wsdl02.wsdl
because Siebel Tools crash without second thought and without logging any usefull information about the error.