Dynamic Loading Maps BizTalk 2006 R2 upgrade to BizTalk 2013

We are in the process of upgrading BizTalk to 2013 R2 from BizTalk 2006 R2.
In an orchestration we are dynamic using map type classes.
It works fine in 2006 R2, 2010 but not 2013 R2.
When I run the below code in VS 2008 it retrieves the class types from the assemblies.
In VS 2013 it does not.  Why?
//CCIJIS_WarrantClearRequest_X_MCIJIS_CLWR
string typeName =
"x";
string className =
"x";
Type mapType =
Type.GetType("MCIJIS_RCLW_X_CCIJIS_WarrantClearResponse,
CCIJIS.State.Transforms, Version=1.2.0.0, Culture=neutral, PublicKeyToken=d18be0be6c153b84");
            mapType =
Type.GetType("CCIJIS.State.Transforms.MCIJIS_RCLW_X_CCIJIS_WarrantClearResponse");
if (mapType ==
null)
foreach (Assembly
a in
AppDomain.CurrentDomain.GetAssemblies())
if (a.FullName.Contains("CCIJIS.State.Transforms"))
                        typeName = a.FullName;
                        mapType = a.GetType(a.FullName);
foreach (Type
type in a.GetTypes())
                            className = type.FullName;
James Nance

Hi James,
Try debugging your code by attaching Visual Studio to the BTSNTSVC.exe process and see where exactly your code is failing.
For debugging your orchestration refer:
BizTalk Orchestration – Orchestration debugging inside Visual Studio
Checkpoint: Ensure you have using correct fully-qualified map name.
Rachit
Please mark as answer or vote as helpful if my reply does

Similar Messages

  • BizTalk 2006 Event Log Warnings - Cannot insert duplicate key row in object 'dta_MessageFieldValues' with unique index 'IX_MessageFieldValues'.

    We have been seeing the following 'warnings' in the event log of our BizTalk machine since upgrading to BTS 2006. They seem to occur randomly 6 or 8 times per day.
    Does anyone know what this means and what needs to be done to clear it up? we have only one BizTalk server which is running on only one machine.
    I am new to BizTalk, so I am unable to find how many tracking host instances running for BizTalk server. Also, can you please let me know that we can configure only one instance for one server/machine?
    Source: BAM EventBus Service
    Event: 5
    Warning Details: Execute batch error. Exception information: TDDS failed to batch execution of streams. SQLServer: bizprod, Database: BizTalkDTADb.Cannot insert duplicate key row in object 'dta_MessageFieldValues'
    with unique index 'IX_MessageFieldValues'. The statement has been terminated..

    Other than ensuring that there exists a separate and single tracking host instance, you're getting an error about duplicate keys.. which implies that you're trying to Create a BAM Activity twice with the same data.
    I suggest you have a in-depth examination of the BAM (TPE or API) associated with the orchestration. In TPE ensure that the first binding you select is the "Instance Id" or "Message Id" before going ahead to map the ports or others.
    Regards.

  • Value Mapping and Dynamic Value Mapping

    Hi Experts,
    Could you please give a example for Value Mapping and Dynamic Value Mapping?
    Regards
    Sara

    Sara,
    I am assuming that you are going to use the Receiver JDBC adapter to select the data from the database.
    In this case, take a look at this blog of mine to understand how te dataypes should be created for the request and response JDBC Select Query.
    /people/bhavesh.kantilal/blog/2006/07/03/jdbc-receiver-adapter--synchronous-select-150-step-by-step
    The only difference would be that in the mapping when you create the Request Message for the JDBC adapter, the columns you create would be determined from the Source,
    i.e, if value = 1 , only the required Columns should be mapped as Blank constants,
    likewise for the other requirement.
    the columns you do not want to select you should not create them in theoutput of your request mapping.
    Regards
    Bhavesh

  • Dynamically loading client proxy no longer works

    I've got several instances where we need to dynamically load/initialize a WebService client proxy using a URL classloader all within an Applet. The need for the classloader and dynamic loading is due to the seperate jars holding different system modules. One main module can't possible know which submodules are also installed and have WebServices running.
    Instead, the main module reads the location of a class to load and uses a URL classloader to load that class. The loaded class knows about it's own client proxy to use and tries to load the appropriate jar and class. The proxy is successfully found and loaded using the classloader, but pukes during initialization. It appears the RuntimeModeler can't find the generated IsAvailable class even though it exists in the same signed jar that just got loaded and which contains the very client proxy that is trying to initialize itself.
    This process worked fine using 1.5, but no longer works after migrating to 1.6. Am I missing something obvious?
    Classloader: java.net.FactoryURLClassLoader@863cc1
    WebAppMgr.getServiceProxy -> b4 initialize
    class: com.irista.warehouse.webservice.wmscoredata.server.data.IsAvailable could not be found
         at com.sun.xml.internal.ws.modeler.RuntimeModeler.getClass(Unknown Source)
         at com.sun.xml.internal.ws.modeler.RuntimeModeler.processDocWrappedMethod(Unknown Source)
         at com.sun.xml.internal.ws.modeler.RuntimeModeler.processMethod(Unknown Source)
         at com.sun.xml.internal.ws.modeler.RuntimeModeler.processClass(Unknown Source)
         at com.sun.xml.internal.ws.modeler.RuntimeModeler.buildRuntimeModel(Unknown Source)
         at com.sun.xml.internal.ws.client.ServiceContextBuilder.processAnnotations(Unknown Source)
         at com.sun.xml.internal.ws.client.ServiceContextBuilder.completeServiceContext(Unknown Source)
         at com.sun.xml.internal.ws.client.WSServiceDelegate.processServiceContext(Unknown Source)
         at com.sun.xml.internal.ws.client.WSServiceDelegate.createEndpointIFBaseProxy(Unknown Source)
         at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(Unknown Source)
         at javax.xml.ws.Service.getPort(Unknown Source)
         at com.irista.warehouse.webservice.wmscoredata.server.data.WmsCoreDataWS.getWarehouseCoreDataWSPort(WmsCoreDataWS.java:50)
         at com.irista.warehouse.webservice.wmscoredata.client.WmsCoreDataSvcProxy.initialize(WmsCoreDataSvcProxy.java:92)
         at com.irista.ui.webapp.framework.WebAppManager.getServiceProxy(WebAppManager.java:760)
         at com.irista.warehouse.webapps.scheduling.CycleCountParameterPanel.getCycleCountSets(CycleCountParameterPanel.java:309)
         at com.irista.warehouse.webapps.scheduling.CycleCountParameterPanel.refreshAction(CycleCountParameterPanel.java:236)
         at com.irista.warehouse.webapps.scheduling.CycleCountParameterPanel.preDisplay(CycleCountParameterPanel.java:225)
         at com.irista.warehouse.webapps.scheduling.CycleCountParameterPanel.initialize(CycleCountParameterPanel.java:149)
         at com.irista.foundation.webapps.scheduling.TaskTypeParameterPanel.createParameterPanel(TaskTypeParameterPanel.java:473)
         at com.irista.foundation.webapps.scheduling.TaskTypeParameterPanel.refreshAction(TaskTypeParameterPanel.java:147)
         at com.irista.foundation.webapps.scheduling.TaskTypeParameterPanel.preDisplay(TaskTypeParameterPanel.java:331)
         at com.irista.ui.webapp.framework.TabbedAppletPane.changePanel(TabbedAppletPane.java:311)
         at com.irista.ui.webapp.framework.TabbedAppletPane$TabbedChangeListener.stateChanged(TabbedAppletPane.java:385)
         at javax.swing.JTabbedPane.fireStateChanged(Unknown Source)
         at javax.swing.JTabbedPane$ModelListener.stateChanged(Unknown Source)
         at javax.swing.DefaultSingleSelectionModel.fireStateChanged(Unknown Source)
         at javax.swing.DefaultSingleSelectionModel.setSelectedIndex(Unknown Source)
         at javax.swing.JTabbedPane.setSelectedIndexImpl(Unknown Source)
         at javax.swing.JTabbedPane.setSelectedIndex(Unknown Source)
         at javax.swing.plaf.basic.BasicTabbedPaneUI$Handler.mousePressed(Unknown Source)
         at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
         at java.awt.Component.processMouseEvent(Unknown Source)
         at javax.swing.JComponent.processMouseEvent(Unknown Source)
         at java.awt.Component.processEvent(Unknown Source)
         at java.awt.Container.processEvent(Unknown Source)
         at java.awt.Component.dispatchEventImpl(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.EventQueue.dispatchEvent(Unknown Source)
         at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.run(Unknown Source)

    Are you running SP2 R2? This worked for me as well until I upgraded to SCCM 2007 SP2 R2. I am focusing on the "~Doing Account Cleanup" errors in the ccm.log which should happen every 30 days, not every 20 minutes. Those errors have to be related to client push problems. Also, thanks for the reboot suggestion. I realize anytime a computer object is added to a domain security group that has is a member of a local group on the client, that a reboot is necessary on client systems in order to receive a new Kerberos access token but in the case of my test systems, I have explicitly added the computer account to the local administrators group so a reboot is not required. I have a test site in a completely different forest and it behaves almost the same way (doesn't run the "~Doing Account Cleanup" every 20 minutes) but still fails to install the client using the site server's computer account. Must be me!!!   

  • Dynamically load Vi from LLB

    Hey all!
    I looked up the forumfor an answer but couldn't find the answer... I was wondering how to dynamically load a Vi from an LLB by just using a path.  Is this possible?
    Thanks in advance
    Yohan

    Hi NahoY,
    you can get the path of files using this:
    Greets, Dave
    Message Edited by daveTW on 06-05-2006 08:32 PM
    Greets, Dave
    Attachments:
    Get Path.png ‏8 KB

  • Regarding dynamically loading slider/radios within grid

    I have a DataGrid and I am using ItemRenderers to dynamically load components like images and buttons within it. Now, I wanted to know if its possible to load a slider or even a radiogroup based on values that the datagrid receives dynamically. If a slider is used it needs to be calibrated with data that it receives from dataprovider property of the grid. Similarly, if a radio group is used, I should be able to render number of radios depending on the data provided to datagrid.
    I am basically building an application for image search where I want to provide a slider or radios (within each row of datagrid) displaying various sizes in which the same image is available. The user should be able to select a size and then further processing continues.
    Let me know if this is possible.Thanks.

    If this post answered your question or helped, please mark it as such.
    This code will solve your problem or get you much closer to a solution:
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
      <mx:Script>
       <![CDATA[
          import mx.collections.ArrayCollection;
          import mx.events.ItemClickEvent;
          [Bindable] private var ac:ArrayCollection = new ArrayCollection([
            {img: "test1", vals: [10, 20, 30, 40]},
            {img: "test2", vals: [15, 20, 100]},
            {img: "test3", vals: [100, 200, 300, 400, 500]}
        ]]>
      </mx:Script>
      <mx:DataGrid dataProvider="{ac}" width="680" height="480"
        variableRowHeight="true" alternatingItemColors="[0xff0000, 0x0000ff]">
        <mx:columns>
          <mx:DataGridColumn dataField="img"/>
          <mx:DataGridColumn dataField="vals">
            <mx:itemRenderer>
              <mx:Component>
                <mx:VBox>
                  <mx:Text id="txt" fontSize="20"/>
                  <mx:RadioButtonGroup id="grp" itemClick="txt.text = RadioButton(event.relatedObject).label;"/>
                  <mx:Repeater id="rp" dataProvider="{data.vals}">
                    <mx:RadioButton label="{rp.currentItem}" groupName="grp"/>
                  </mx:Repeater>
                </mx:VBox>
              </mx:Component>
            </mx:itemRenderer>
          </mx:DataGridColumn>
        </mx:columns>
      </mx:DataGrid>
    </mx:Application>

  • Validation for loaded mapping tables

    Hi
    As I know FDM doesn't validate maps imported from the file. If there is any way to do a validation for these maps? May be using any Event script?

    Hi Tushar,
       I see following benifits in storing mapping tables on R3 -
       1. R3 being the bigger system, you will have more information available for mapping in R3. E.g. if a mapping depends on some attribute of data like "material type" you have that information avialable in R3 whereas you need to have a process to pull this information into Biztalk from R3 and keep it in sync.
       2. You can reuse the mapping logic for other interfaces if coded correctly, e.g. function modules for mapping.
       3. Tomorrow if biztalk is replaced with XI, there is less impact because you need not worry about mapping logic which is alreay there in R3.
      Lastly I don't see any real reason why it should have an y impact on upgrade because you are going to use tables in customer name range. It only increases the number of tables in customer name range. Usually people calculate the cost of an upgrade based on level of customization done in the system and that is genrally linked to number of objects in customer name range. But If think pragmatically there is no impact on upgrade cost because these kind of customization do not affect upgrade.
    Cheers,
    Sanjeev

  • Is this the right to use or for iOS can use dynamic google maps embeded(can be embedded fo iOS)

    function displayMap(e) {
    var title = e.data.title,
        latlng = e.data.lat + ',' + e.data.lng;
    if (typeof device !='undefined' && device.platform.toLowerCase() == 'android') {
    window.location = 'http://maps.google.com/maps?z=16&q=' + encodeURIComponent(title) + '@' + latlng;
    } else {
    $('#map h1').text(title);
    $('#map div[data-role=content]').html('<img src="http://maps.google.com/maps/api/staticmap?center=>' + latlng + ' &zoom=16&size=320x420&markers=' + latlng + '&sensor=false">');
    $.mobile.changePage('#map', 'fade', false, true);
    my phonegap (Adobe press, Powers jQuery with dw 5.5) book (old book (c)2010-11) says for above code: // is this valid for today, is this the right to use or for iOS can use dynamic google maps embeded(can be embedded fo iOS)???
    On iOS, calling window.location loads the map directly
    into the app. That’s great until you realize that iOS devices
    don’t have a Back button, so there’s no way to exit the
    map. To get round this problem, I loaded a static map as
    an image in the map page block. It’s not interactive, but at
    least you can continue using the Travel Notes app after
    viewing the map by clicking the Back button generated by
    jQuery Mobile.

    Well, this took me a while to get solved, but it is indeed solved.
    I tried USB Overdrive and it could, and perhaps should work, but apparently it will not. When adding a device, it seems that USB Overdrive is not set up to handle any input device that does not register itself as either a Mouse or a Joystick. The VEC USB Footpedal that I'm using is "Device type: Other".
    So, I went for Quickeys. And Quickeys can do it all. It did recognize the device, I was able to assign it to the scope of the particular audio playback app I wanted to use (Amazing Slow Downer OS X - which is truly amazing. Any musicians reading this who are looking for a way to learn pieces by ear, this does it better than anything else I've seen yet).
    I created a shortcut in Quickeys for the ASD app; added the middle button of the foot pedal as the trigger; set one step, entering 'space bar' as the step (which toggles playback, similar to many audio players).
    It all worked.
    Quickeys is very confusing and seemingly featured with an endless array of options. Enter at your own risk. Ask me for help. This was the only way to get it done that I could find. I did write to the author of USB Overdrive asking him to please support additional devices as I did find some traction from gamers who like to use a foot pedal in addition to other input devices. There was a Windows-only management utility for the foot pedal that was intended for custom input, assigning the buttons to any keyboard input or mouse click event. It would be nice to have a simple and easy to use utility like this. But, Quickeys did do the job.
    Thanks for your help, you guys!!!

  • Anyway to have JDeveloper dynamically load BC4J components in memory?

    We are dealing with a large BC4J based application that contains large amount of application modules. So far, 300 application modules and total 4000 BC4J objects have been created. The size of the application still keeps growing daily... may up to twenty times than what we are having right now.
    While the application size growing, some unusual problem comes out. The biggest problem is that it makes JDeveloper very sluggish. It takes 15 minutes to just open JDeveloper and may need a few minutes to open the application module editor. (FYI: in our team, most developers have 1G memory and 1.8G CPU or up.) This is probably still OK for right now, but it will become a big problem later when the project size grows.
    When we analysis the project structure, we know that most of time, developer does not need to load all the application modules. For example, we have a core package that contains about 30 application modules. This core package needs to be shared and should be loaded. But, the other nine packages contain about 30 application modules each do not need to be loaded into memory at the same time in most cases. Since BC4J is XML based, we could not find a way to just partially load those application modules, especially when there’s cross references between them.
    When we check the project.jpr file, looks like all BC4J objects are referenced there. We have 40K lines in our project.jpr file now. When open JDeveloper, we believe JDeveloper will try to load all referenced BC4J XML content into memory. This consumes 500M memory and makes the overall performance very sluggish. The situation may become even worse when the project size keeps growing. For example, we cannot have 5000M (5G) memory in a development machine for 3000 application modules.
    We do know that by checking out the "ScanSource Paths to Determins Project Contents" in the Input Paths of Project Settings, we can short the JDeveloper’s open time, but this will not give BC4J relationship information and some other useful information… Not a practical solution.
    So, any idea to make JDeveloper dynamically loaded BC4J based on need?
    We’ve tried a few ways. One is to partition the application into different project and import the core one into the other projects. Only open the project in workspace when need. But this is not officially documented by Oracle and we are not sure whether it is possible/correct or not. Another thought is to remove the NOT-CURRENTLY-USED package from the project. But JDeveloper only support file level remove.
    Any help on this dilemma will be highly appreciated.
    Thanks,
    Charles

    The package is the unit of loading in the IDE for ADF business components.
    To edit components, they must belong to the project.
    To refer to components in a read-only way, they can be imported. This allows other editable or read-only components to refer to them without allowing the imported components to be edited.
    Both editable and imported components need to be loaded in memory to use them, so you can save memory at design time by creating projects that leave out as many packages as possible.
    Is there a way we can get your existing project in house to study its design time performance?

  • Dynamic load of images in to established Timeline effect

    Is it possible to dynamicly load images in to an already
    established timeline effect?
    Steps I've done.
    Stuffed a JPG in to the library by draging and dropping it in
    to the SWFs library.
    Dropped the JPG on to the main stage
    Right clicked the image then going down to Timeline effects
    and choosing an effect.
    Completing any changes in effects dialogue box and then
    clicking OK.
    Play the movie, and pat myself on the back that it worked.
    So then, how can I get Actionscript to load an image
    dynamically in to that same Timeline effect and have it do the
    effect to that instead of the one found in the library?
    I'm using Flash MX Professional 2004.

    hii
    Can u mention the error message getting while the status become RED??
    As what I understand, this may be the issue of invalid characteristics inPSA Data Records or also there may be records that does not support the lower case or upper case data.
    So just check the data in PSA Level
    Thanks
    Neha

  • Spry Tabbed panels + Progressive Enhancement and Dynamic Loading of Content With Spry

    Is there any way to combine tabbed panels together with "Progressive Enhancement and Dynamic Loading of Content With Spry"?
    Visit: http://labs.adobe.com/technologies/spry/articles/best_practices/progressive_enhancement.ht ml#updatecontent
    And click on the "Using Spry.Utils.updateContent()"
    The 3rd example shows how to use a fade transition whenever the content changes.
    I already have tabbed panels. My menu contains buttons (on tabs) and my Content div contains the panels.
    Tabs code;
    <ul class="TabbedPanelsTabGroup">
              <li class="TabbedPanelsTab">
                   <table class="Button"  >
                        <tr>
                        <td style="padding-right:0px" title ="Home">
                        <a href="javascript:TabbedPanels1.showPanel(1);" title="Home" style="background-image:url(/Buttons/Home.png);width:172px;height:75px;display:block;"><br/></a>
                        </td>
                        </tr>
                   </table>
              </li>
    etc
    etc
    etc
    and the panel code:
    <div class="TabbedPanelsContent" id="Home">
         CONTENT
    </div>
    I hoped i can use the example code from the link into my tabbed panels.
    I thought this code:
    onclick="FadeAndUpdateContent('event', 'data/AquoThonFrag.html'); return false;"
    could be added to the tab code like this:
    <a href="javascript:TabbedPanels1.showPanel(1);" onclick="FadeAndUpdateContent('event', 'data/AquoThonFrag.html'); return false;" title="Home" style="background-image:url(/Buttons/Home.png);width:172px;height:75px;display:block;"><br/></a>
    But the content doesnt fade...
    I know i need to change the header etc.
    The following is from the link:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:spry="http://ns.adobe.com/spry">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Aquo Events</title>
    <script src="../../../includes/SpryEffects.js" type="text/javascript"></script>
    <script src="../../../includes/SpryData.js" type="text/javascript"></script>
    <script type="text/javascript">
    <!--
    function FadeAndUpdateContent(ele, url)
    try {
         Spry.Effect.DoFade(ele,{ duration: 500, from: 100, to: 0, finish: function() {
              Spry.Utils.updateContent(ele, url, function() {
                        Spry.Effect.DoFade(ele,{ duration: 500, from: 0, to: 100 });
    }catch(e){ alert(e); }
    -->
    </script>
    <style type="text/css">
    /* IE HACK to prevent bad rendering when fading. */
    #event { background-color: white; }
    </style>
    </head>
    So i changed my header etc, put the SpryEffects.js and SpryData.js into position and nothing changed...
    Is there a way to keep my tabbed panel (or change as less as possible) and let
    A. The fade work
    B. The loading work.
    The problem now is that it loads all pages instead of only the home. Therefore i wanted this Progressive Enhancement.
    And the fading part is just because its nice...

    It doesnt show in the post but off course i changed this link;
    "data/AquoThonFrag.html"
    into;
    "javascript:TabbedPanels1.showPanel(1);"
    I must say i dont know if this even works...

  • How can you display a dynamically loaded vi to the Web Server?

    I am working with LabView 6.1 and the Web Server. I can call a subvi and have it display on a remote machine using a browser with no problem. But what I would like to do is dynamically load and run a vi and have it display on the remote computer using only a browser. I have tried a small example of a front panel that invokes the run vi method (and fp.open prop) on another vi when a button is pressed, but the invoked vi is displayed only on the local computer. Is there any way of viewing dynamically loaded vi's on a remote machine without having a copy of LabView running on it?

    If i understand your question correctly, you want to monitor vi that are dynamically loaded on a remote machine without having LabVIEW installed on the machine from witch you want the monitor. I don't think it's possible how ever a good reference book would be Internet applications in LabVIEW. You can find it on BARNES&NOBLE.
    Hope i could help

  • How to dynamically load jar files - limiting scope to that thread

    Dynamically loading jar files has been discussed a lot. I have read a quite a few posts, articles, and demo code for doing just that. However, I have yet to find a solution to my problem. Most people modify their system class loader and are happy. I have done that and was happy for a time. Occasionally, you will see reference to an application server or tomcat or some other large project that have successfully been able to load and unload jar files, allow for dynamic deployment of code, etc. However, I have not been able to achieve similar success; And my problem is much less complicated.
    I have an application that executes a thread to send a given file/message to a standard JMS Server Queue. Depending on the parameters selected by the user, this thread may need to communicate with one of a number of JMS Servers, ie. JBoss, WebLogic, EAServer, Glassfish, etc. All of which can be done with the same code, but each needs to load their own flavor of JMS Client Jar files. In this instance, spawning a separate JVM for each communication would work from a classloader perspective. However, I need to keep it in the family and run under the same JVM, albeit each JMS Server Connection will be created and maintained in separate Threads.
    I am close, I am doing the following...
    1. Creating a new URLClassLoader in the run() method of each thread.
    2. Set this threads contextClassLoader to the new URLClassLoader.
    3. Load the javax.jms.JMSException class with the URLClassLoader.loadClass() method.
    4. Create an initialContext object within this thread.
    Note: I read that the initialContext and subsequent conext lookup calls would use the Thread�s
    contextClassLoader for finding/loading classes.
    5. Perform context.lookup calls for a connectionFactory and Queue name.
    6. Create JMS Connection, etc. Send Message.
    Most of this seems to work. However, I am still getting a NoClassDefFoundError exception for the javax.jms.JMSException class ( Note step #3 - tried to cure unsuccessfully).
    If I include one of the JMS Client jar files ( ie wljmsclient.jar for weblogic ) in the classpath then it works for all the different JMS Servers, but I do not have confidence that each of the providers implemented these classes that now resolve the same way. It may work for now, but, I believe I am just lucky.
    Can anyone shine some light on this for me and all the others who have wanted to dynamically load classes/jar files on a per Thread basis?

    Thanks to everyone - I got it working!
    First, BenSchulz' s dumpClassLoader() method helped me to visualize the classLoader hierarchy. I am still not completely sure I understand why my initial class was always found by the systemClassLoader, but knowning that - was the step I needed to find the solution.
    Second, kdgregory suggested that I use a "glue class". I thought that I already was using a "glue class" because I did not have any JMSClient specific classes exposed to the rest of the application. They were all handled by my QueueAdmin class. However...
    The real problem turned out to be that my two isolating classes (the parent "MessageSender", and the child "QueueAdmin") were contained within the same jar file that was included in the classpath. This meant that no matter what I did the classes were loaded by the systemClassLoader. Isolating them in classes was just the first step. I had to remove them from my jar file and create another jar file just for those JMSClient specific classes. Then this jar file was only included int custom classLoader that I created when I wanted to instantiate a JMSClient session.
    I had to create an interface in the primary jar file that could be loaded by the systemClassLoader to provide the stubs for the individual methods that I needed to call in the MessageSender/QueueAdmin Classes. These JMSClient specific classes had to implement the interface so as to provide a relationship between the systemClassLoader classes and the custom classLoader classes.
    Finally, when I loaded and instantiated the JMSClient specific classes with the custom classLoader I had to cast them to the interface class in order to make the method calls necessary to send the messages to the individual JMS Servers.
    psuedu code/concept ....
    Primary Jar File   -  Included in ClassPath                                                      
    Class<?> cls = ClassLoader.loadClass( "JMSClient.MessageSender" )
    JMSClientInterface jmsClient = (JMSClientInterface) cls.newInstance()                            
    jmsClient.sendMessage()                                                                      
    JMSClient Jar File  -  Loaded by Custom ClassLoader Only
    MessageSender impliments Primary.JMSClientInterface{
        sendMessage() {
            Class<?> cls=ClassLoader.loadClass( "JMSClient.QueueAdmin" )
            QueueAdmin queueAdmin=(QueueAdmin) cls.newInstance()
            queueAdmin.JMSClientSpecificMethod()
        }

  • URLClassLoader + dynamically loading signed jar files

    I have an applet that does not know all of the jar files it will need to load at startup.
    I would like to dynamically load these signed jar files using the URLClassLoader, however it does not recognize these jar files as being signed and I get java.security.AccessControlException: access denied errors.
    Any suggestions?
    Thanks!

    Try this classloader for loading the jars, it should to the trick:
    import java.net.URL;
    import java.net.URLClassLoader;
    import java.net.URLStreamHandlerFactory;
    import java.security.AllPermission;
    import java.security.CodeSource;
    import java.security.PermissionCollection;
    import java.security.Permissions;
    public class AllPermissionsClassLoader extends URLClassLoader {
        public AllPermissionsClassLoader (URL[] urls) {
            super(urls);
        public AllPermissionsClassLoader (URL[] urls, ClassLoader parent) {
            super(urls, parent);
            System.out.println(parent);
        public AllPermissionsClassLoader (URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory) {
            super(urls, parent, factory);
        protected PermissionCollection getPermissions (CodeSource codesource) {
            Permissions permissions = new Permissions();
            permissions.add(new AllPermission());
            return permissions;
    }

  • Problem displaying dynamically loaded text in Flash CS3

    I created a Flash CS3 application that does not display
    dynamically loaded text (from internal AS3 scripts) on 3/6 of my
    client's computers. All computers run IE 6 and Flash Player 9. I
    cannot replicate the problem on any computer in my department. The
    problem seems to be related to Flash Player 9 or a browser
    setting/IT restriction. Has anyone encountered this? If so, have
    you found a solution?
    If I cannot find a solution, then I will need to almost
    completely redo the application.
    One slightly insane idea I have considered is to, if
    possible, convert dynamically loaded text to an image real-time. Is
    that possible?
    Btw, I have created a font in my library. Should I try
    manually embedding the font from the Properties menu and selecting
    all characters?
    Thanks in advance.

    yes, even though you may be using a font from the library,
    you still have to specify that each text field that uses that font
    embeds the font, and you'll need to select all characters(well not
    all, unless you require all the different scripts of the world -
    upper-case, lower-case, numerals and punctuation usual suffices).
    I bet if you checked, the computers where the font did not
    appear did not have the font on their system.
    Good luck
    Craig

Maybe you are looking for