Weblogic Authors: Yeshim Deniz, Elizabeth White, Michael Meiner, Michael Bushong, Avi Rosenthal

Related Topics: Weblogic

Weblogic: Article

Integrating an ASP.NET Application with J2EE PART 2

Platform interoperability

The application then loads the XML string passed from the Web Service into the DataSet via the ReadXml method.

//Get exception detail xml string
string xmlString = ex.Detail.OuterXml;

//Read the xml string into a StringReader object
StringReader stringReader = new StringReader(xmlString);

//Read the StringReader into the XmlReader object
XmlReader xmlReader = new XmlTextReader(stringReader);

//Read the Xml into the DataSet
dsError.ReadXml(xmlReader, XmlReadMode.IgnoreSchema);
The client error message is then accessible from the DataSet and is displayed in the txtSOAPClientMessage text.

// Create an instance of DataView object
dataView = new DataView();

// Specify the table
dataView.Table = dsError.Tables["Error"];

// Get the first row
DataRow dsErrorRow = dataView.Table.Rows[0];

// Get the relevant Error message
message = dsErrorRow["ClientErrorMessage"].ToString();
txtSOAPClientMessage.Text = message;
The complete code for this processing is shown in Listing 5.

There's one additional issue to consider when processing a SoapException thrown via a WebLogic Web Service. If you choose to expose a Session EJB as a Web Service, there's an additional caveat. Runtime (non-checked) exceptions thrown in Session EJBs are packaged by the EJBContainer as an EJBException before being thrown to the caller. This is mandated by the J2EE specification. EJBExceptions in a Web Service are automatically processed by WebLogic and wrapped using default SoapException processing. It doesn't let you override this processing to generate a custom SoapException. It's one of the reasons we used a business delegate layer (see Figure 1). It lets us throw our exception as a custom application exception in WebLogic, and in the business delegate class (which is a simple Java class), it allows us to catch the application exception, generate, and throw a custom SoapException.

Uploading binary information
In our application we needed to let users upload binary images to our site. The images then had to be available to other users of the application. The images contained confidential information for our clients, so we needed to ensure that the images couldn't be viewed easily in the Web application by manipulating the URL. As part of out business analysis for the site, we viewed the sites of some of our client's competitors and were surprised to see that we could often guess the names (and sequence numbers) of the images and could see information that was private and confidential.

So we stored the images on our WebLogic server (on the file system) and streamed the binary contents of the file via a Web Service. The client, an ASP.NET Web page, would gather the file's binary contents and stream them to the client browser.

The first issue we needed to resolve was the technology we were going to use to send the binary information via Web Services. There were two different alternatives: send the data via a binary data type or via the SOAP With Attachments protocol. We did some research and found an interesting paper written by several Microsoft and BEA architects at http://msdn.microsoft.com/library/default.asp?url=/ library/en-us/dnwebsrv/html/infoset_whitepaper.asp. The paper advocates encoding the data via a binary data type such as xs:base64binary or xs:hexBinary because of security issues with out-of-band attachment data as well as the fact that SOAP Messages With Attachments don't conform to the Basic Profile 1.0 (BP) published by the Web Services Interoperability Organization (WS-I). That raised some potential performance issues with using text representations of binary code, but, since we weren't transferring a lot of binary data, optimal performance wasn't the most important issue. Based on that white paper, especially given the authors and the equal representation of Microsoft and BEA, we decided to use binary data types to send image data in our Web Service rather than using the SOAP With Attachments API. Once we established our approach, we needed to map out the steps. We would use the .NET upload HTML control to send the binary data to the Web server. Once the user uploaded the image to the Web server, the application needed to do the following in the ASP.NET application:

  1. Check that the image extension was valid.
  2. Define a temporary file name for the image and call the fileInput.PostedFile.SaveAs method to save the file to a temporary area on the Web server.
  3. Check the size of the image to make sure it wasn't beyond the limit allowed.
  4. Convert the image to a byte array.
  5. Call the Web Service passing the byte array.
  6. Delete the temporary file.
Listing 6 shows the ASP.NET code that did these steps. It's pretty straightforward so I won't go through it in detail.

The Web Service code in BEA's WebLogic needed to get the byte array, create a file on the file system from it, and store the name of the image in the database so the image could be viewed in the future.

Listing 7 shows the Java code that did these steps. In the example we simply stored the file on the application server's file system. In our production application, we added a couple of additional steps to obfuscate the file name and to store the files in a hierarchical structure on the file system (rather than in the same directory) to make file system navigation and lookup more efficient.

More Stories By Blair Taylor

Blair Taylor is president of JustWebSolutions.com, a Canadian company specializing in the architecture and development of distributed systems. Blair has authored several publications covering client-server and distributed technologies and is certified in both Java and .NET technologies. Blair can be reached via e-mail at [email protected] or at www.justwebsolutions.com.

Comments (1)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.

IoT & Smart Cities Stories
Dion Hinchcliffe is an internationally recognized digital expert, bestselling book author, frequent keynote speaker, analyst, futurist, and transformation expert based in Washington, DC. He is currently Chief Strategy Officer at the industry-leading digital strategy and online community solutions firm, 7Summits.
Digital Transformation is much more than a buzzword. The radical shift to digital mechanisms for almost every process is evident across all industries and verticals. This is often especially true in financial services, where the legacy environment is many times unable to keep up with the rapidly shifting demands of the consumer. The constant pressure to provide complete, omnichannel delivery of customer-facing solutions to meet both regulatory and customer demands is putting enormous pressure on...
IoT is rapidly becoming mainstream as more and more investments are made into the platforms and technology. As this movement continues to expand and gain momentum it creates a massive wall of noise that can be difficult to sift through. Unfortunately, this inevitably makes IoT less approachable for people to get started with and can hamper efforts to integrate this key technology into your own portfolio. There are so many connected products already in place today with many hundreds more on the h...
The standardization of container runtimes and images has sparked the creation of an almost overwhelming number of new open source projects that build on and otherwise work with these specifications. Of course, there's Kubernetes, which orchestrates and manages collections of containers. It was one of the first and best-known examples of projects that make containers truly useful for production use. However, more recently, the container ecosystem has truly exploded. A service mesh like Istio addr...
Digital Transformation: Preparing Cloud & IoT Security for the Age of Artificial Intelligence. As automation and artificial intelligence (AI) power solution development and delivery, many businesses need to build backend cloud capabilities. Well-poised organizations, marketing smart devices with AI and BlockChain capabilities prepare to refine compliance and regulatory capabilities in 2018. Volumes of health, financial, technical and privacy data, along with tightening compliance requirements by...
Charles Araujo is an industry analyst, internationally recognized authority on the Digital Enterprise and author of The Quantum Age of IT: Why Everything You Know About IT is About to Change. As Principal Analyst with Intellyx, he writes, speaks and advises organizations on how to navigate through this time of disruption. He is also the founder of The Institute for Digital Transformation and a sought after keynote speaker. He has been a regular contributor to both InformationWeek and CIO Insight...
Andrew Keys is Co-Founder of ConsenSys Enterprise. He comes to ConsenSys Enterprise with capital markets, technology and entrepreneurial experience. Previously, he worked for UBS investment bank in equities analysis. Later, he was responsible for the creation and distribution of life settlement products to hedge funds and investment banks. After, he co-founded a revenue cycle management company where he learned about Bitcoin and eventually Ethereal. Andrew's role at ConsenSys Enterprise is a mul...
To Really Work for Enterprises, MultiCloud Adoption Requires Far Better and Inclusive Cloud Monitoring and Cost Management … But How? Overwhelmingly, even as enterprises have adopted cloud computing and are expanding to multi-cloud computing, IT leaders remain concerned about how to monitor, manage and control costs across hybrid and multi-cloud deployments. It’s clear that traditional IT monitoring and management approaches, designed after all for on-premises data centers, are falling short in ...
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand using interactive visualizations and salary indicator tools to maximize earning potential. Manish Dixit is VP of Product and Engineering at Dice. As the leader of the Product, Engineering and Data Sciences team at D...
Dynatrace is an application performance management software company with products for the information technology departments and digital business owners of medium and large businesses. Building the Future of Monitoring with Artificial Intelligence. Today we can collect lots and lots of performance data. We build beautiful dashboards and even have fancy query languages to access and transform the data. Still performance data is a secret language only a couple of people understand. The more busine...