Publishing Methodology Description
Trying to troubleshoot a problem where we cannot publish (or upload) to a slide library. It returns that either the site doesn't exist or I don't have permissions to it. I know it's a dummy error, so I'm trying to find out what the Publishing
mechanism is documented at to see what is different about it from the browser logins that is causing it to fail. Does anyone have any information on the difference between a regular upload and publishing from Word/Powerpoint?
Thanks in advance!
Hello,
Try to use "LinkFieldValue" class which will return properties of Publishing Hyperlink column.
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.publishing.fields.linkfieldvalue%28v=office.14%29.aspx
Hemendra:Yesterday is just a memory,Tomorrow we may never see
Please remember to mark the replies as answers if they help and unmark them if they provide no help
Similar Messages
-
Error activating publishing feature
Hello... im having a problem while i try to activate the publishing feature, i get this error
The field {51d39414-03dc-4bd0-b777-d3e20cb350f7} defined in feature {aebc918d-b20f-4a11-a1db-9ed84d79c87e} is founded in site collection or in a subsite
I maked a program to read all the guid of fields in the sites and list,, and dont found {51d39414-03dc-4bd0-b777-d3e20cb350f7}, thanks in advanceHi Diego,
If you have already activated the Site Collection feature SharePoint Server Publishing Infrastructure prior to activating the Site Feature SharePoint Server Publishing then run: stsadm -o activatefeature -id
AEBC918D-B20F-4a11-A1DB-9ED84D79C87E -url
http://YourWebApp.com -force.. This will force the feature to be installed..
The field PublishingStartDate is an element of the feature Asset Library
<Field ID="{51d39414-03dc-4bd0-b777-d3e20cb350f7}"
Name="PublishingStartDate"
StaticName="PublishingStartDate"
SourceID="http://schemas.microsoft.com/sharepoint/v3"
Group="$Resources:cmscore,group_publishingcolumns;"
DisplayName="$Resources:cmscore,column_startdate_displayname;"
Type="PublishingScheduleStartDateFieldType"
Required="FALSE" CanToggleHidden="TRUE"
Sealed="TRUE"
StorageTZ="UTC">
</Field>
The Asset Library is an element of the the feature Publishing Resources and a prequisite of the feature Publishing Site
<Feature Id="AEBC918D-B20F-4a11-A1DB-9ED84D79C87E"
Title="Publishing Resources"
Description="Enable Publishing for site collection."
Version="14.0.3.0"
Scope="Site"
Hidden="TRUE"
DefaultResourceFile="core"
ReceiverAssembly="Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
ReceiverClass="Microsoft.SharePoint.Publishing.PublishingResourcesFeatureHandler"
xmlns="http://schemas.microsoft.com/sharepoint/">
-Ivan
Ivan Sanders My LinkedIn Profile,
My Blog,
@iasanders. -
IPhoto not publishing titles to Facebook
Running Mavricks 10.9 (13A603) and iPhoto 9.5 (90237)
When I try to pubish an album of photos taken in October to Facebook from iPhoto the following happens. The photos publish to FB. But instead of the title of the photo (from iPhoto) pubishing to FB, it publishes the description instead. i.e. Ray and Chris take a walk I get Men's Retreat 2013.http://support.apple.com/kb/HT5885
Not that it helps much, but it is documented... -
Any way to control FMLE publishing?
Is there any way to stop FMLE (3.0.1) from publishing a stream?
I have seen code before where you send "NetStream.Publish.BadName" back to onFCPublish - example:
Client.prototype.FCPublish = function( streamname )
// Reject the stream
this.call("onFCPublish", null, {code:"NetStream.Publish.BadName", description:streamname});
The encoding log on my FMLE reads:
Mon Mar 15 2010 14:33:09 : Primary - Network Command: onFCPublish
Mon Mar 15 2010 14:33:09 : Primary - Stream[testStream] Status: Success
Mon Mar 15 2010 14:33:10 : Primary - Stream[testStream] Status: NetStream.Publish.Start
Mon Mar 15 2010 14:33:10 : Session Started
Mon Mar 15 2010 14:33:12 : Video Encoding Started
Mon Mar 15 2010 14:33:12 : Audio Encoding Started
I can see where onFCPublish was called, but the stream still published.
Any thoughts?What is your use case at first place? What you are seeing is expected behaviour. So you can let me know your use case and then we can go ahead and try to find solution for it.
-
Error when publishing WF containing custom code activity to workflow manager 1.0
Hello:
Workflow manager sounds every exciting to me, I am trying it out to see if it will work for me.
I downloaded "CustomCodeActivitySample" of workflow manager 1.0, and when I ran, I got following exception:
Workflow XAML failed validation due to the following errors:
Cannot create unknown type '{clr-namespace:HashActivity;assembly=HashActivity}ComputeHash'. HTTP headers received from the server - ActivityId: 2a1e4d9d-90bd-4f59-a1fc-d3673194dd54. NodeId: NDL0714. Scope: /CustomCodeActivitiesSample. Client ActivityId : 235d66c1-bbe6-4982-8242-833a6bc1f6b1.
more details:
Microsoft.Workflow.Client.ActivityValidationException was unhandled
HResult=-2146233088
Message=Workflow XAML failed validation due to the following errors:
Cannot create unknown type '{clr-namespace:HashActivity;assembly=HashActivity}ComputeHash'. HTTP headers received from the server - ActivityId: efe2c3cb-e6fd-4124-88a1-6c8e72aecb06. NodeId: NDL0714. Scope: /CustomCodeActivitiesSample. Client ActivityId : 73d7b773-be53-4a7b-b2d8-ba687e60a4f4.
Source=Microsoft.Workflow.Client
ActivityName=ProcessMovies
ScopePath=/CustomCodeActivitiesSample
StackTrace:
at Microsoft.Workflow.Client.ClientHelpers.SendRequest[T](HttpWebRequest request, T content)
at Microsoft.Workflow.Client.WorkflowManagementClient.SendRequest[T](HttpWebRequest request, T content)
at Microsoft.Workflow.Client.ActivityManager.Publish(ActivityDescription description, Boolean overwriteXClassName, Boolean terminateDependentInstances)
at Microsoft.Workflow.Client.ActivityManager.Publish(ActivityDescription description)
at Microsoft.Workflow.Samples.Common.WorkflowManagementClientExtensions.PublishWorkflow(WorkflowManagementClient client, String workflowName, String xamlFilePath, Collection`1 externalVariables, IDictionary`2 configValues,
SubscriptionFilter activationFilter) in c:\WFM_C\C\Microsoft.Workflow.Samples.Common\WorkflowManagementClientExtensions.cs:line 45
at Microsoft.Workflow.Samples.Common.WorkflowManagementClientExtensions.PublishWorkflow(WorkflowManagementClient client, String workflowName, String xamlFilePath, SubscriptionFilter activationFilter) in c:\WFM_C\C\Microsoft.Workflow.Samples.Common\WorkflowManagementClientExtensions.cs:line
29
at CustomCodeActivitySample.Program.Main(String[] args) in c:\WFM_C\C\CustomCodeActivitySample\Program.cs:line 39
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException: System.Net.WebException
HResult=-2146233079
Message=The remote server returned an error: (400) Bad Request.
Source=Microsoft.Workflow.Common
StackTrace:
at Microsoft.Workflow.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
at Microsoft.Workflow.Client.HttpGetResponseAsyncResult`1.End(IAsyncResult result)
at Microsoft.Workflow.Client.ClientHelpers.SendRequest[T](HttpWebRequest request, T content)
InnerException:
Thanks
ahorseHi
We had to update following in assemblyinfo.cs file.
assembly: XmlnsDefinition("wf://workflow.windows.net/$Current/$Activities", "YourProjectNamespace")]
to
assembly: XmlnsDefinition("wf://{WorkflowManagerServerName}:12291/$Current/$Activities", "YourProjectNamespace")]for e.g.assembly: XmlnsDefinition("wf://workflowmanagerserver:12291/$Current/$Activities", "YourProjectNamespace")]
Only then custom code activity started working. However, this means, when we want to deploy in other environment with different URL, we need to re-build the assembly.
Is there any way by which we have this configurable?
Regards,
RK
Radhakrishna -
Hello All , Request your help on the below issue ,
We have a single server farm SP 2013 where workflow was working as expected but its broken now , Not sure
what caused this. Workflow manager is installed alongside Service Bus. Workflow Manager client is installed on the same SP server.
We are able to create and publish the workflows from SP Designer without errors but when we start the workflow from SharePoint list we get an error " Sorry something went wrong". We have tried creating new workflows but the same problem.
We receive the below error in event viewer.
Error processing management request. Method: PUT, RequestUri: http://server URL:12291/$Workflows/89c767d2-82d2-4bd9-8e5e-dcace81d844f, Error: System.ArgumentException: The remote server returned an error: (400) Bad Request. ---> System.Net.WebException:
The remote server returned an error: (400) Bad Request.
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at Microsoft.ServiceBus.Messaging.ServiceBusResourceOperations.GetAsyncResult`1.EndGetResponse(GetAsyncResult`1 thisPtr, IAsyncResult ar)
at Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.StepCallback(IAsyncResult result)
--- End of inner exception stack trace ---
Server stack trace:
Exception rethrown at [0]:
at Microsoft.Workflow.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
at Microsoft.Workflow.Gateway.HttpAsyncResult.End[TAsyncResult](IAsyncResult result)
at Microsoft.Workflow.Gateway.WorkflowServiceGateway.<>c__DisplayClass6a.<EndCreateOrUpdateWorkflow>b__69()
at Microsoft.Workflow.Gateway.WorkflowServiceGateway.ExceptionFilter[T](Func`1 body)
at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
ULS logs give below error
Error 1 - Microsoft.Workflow.Client.InternalServerException: An internal error occured. For more details, please see the server logs. HTTP headers received from the server - ActivityId: ba6e77cb-aaae-41a0-9cc8-1ea817d0045e. NodeId: Servername.
Scope: /SharePoint/default/bc694777-7bbb-473e-ab2d-20087221a97a/5229793b-31a1-44b1-9b0b-374f38b762fd. Client ActivityId : a6daec9c-7139-7034-b4ee-edeb1f96ec2a. ---> System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
at Microsoft.Workflow.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
at Microsoft.Workflow.Client.HttpGetResponseAsyncResult`1.End(IAsyncResult result)
at Microsoft.Workflow.Client.ClientHelpers.SendRequest[T](HttpWebRequest request, T content) -
-- End of inner exception stack trace ---
at Microsoft.Workflow.Client.ClientHelpers.SendRequest[T](HttpWebRequest request, T content)
at Microsoft.Workflow.Client.WorkflowManagementClient.SendRequest[T](HttpWebRequest request, T content)
at Microsoft.Workflow.Client.WorkflowManager.Publish(WorkflowDescription description, Boolean terminateActiveInstances)
at Microsoft.SharePoint.WorkflowServices.FabricWorkflowManagementClient.PublishWorkflow(String serviceGroupName, WorkflowDescription workflow)
at Microsoft.SharePoint.WorkflowServices.WorkflowProxy.CreateDefinitionSubscription(String subscriptionName, String eventSource, List`1 eventTypes, String definitionName, IDictionary`2 metadata, WorkflowEventContext eventContext) StackTrace:
at Microsoft.Office.Server.Native.dll: (sig=35339f9c-8871-4ef1-9118-9c1bd0cb6598|2|microsoft.office.server.native.pdb, offset=131CE)
at Microsoft.Office.Server.Native.dll: (offset=21B4D)
Error 2 - Error publishing workflow subscription (republish or retry publish) information: Microsoft.Workflow.Client.InternalServerException: An internal error occured. For more details, please see the server logs. HTTP headers received
from the server - ActivityId: ba6e77cb-aaae-41a0-9cc8-1ea817d0045e. NodeId:
ServerName. Scope: /SharePoint/default/bc694777-7bbb-473e-ab2d-20087221a97a/5229793b-31a1-44b1-9b0b-374f38b762fd. Client ActivityId : a6daec9c-7139-7034-b4ee-edeb1f96ec2a. ---> System.Net.WebException: The remote server returned an error: (500)
Internal Server Error.
at Microsoft.Workflow.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
at Microsoft.Workflow.Client.HttpGetResponseAsyncResult`1.End(IAsyncResult result)
at Microsoft.Workflow.Client.ClientHelpers.SendRequest[T](HttpWebRequest request, T content) -
-- End of inner exception stack trace ---
at Microsoft.Workflow.Client.ClientHelpers.SendRequest[T](HttpWebRequest request, T content)
at Microsoft.Workflow.Client.WorkflowManagementClient.SendRequest[T](HttpWebRequest request, T content)
at Microsoft.Workflow.Client.WorkflowManager.Publish(WorkflowDescription description, Boolean terminateActiveInstances)
at Microsoft.SharePoint.WorkflowServices.FabricWorkflowManagementClient.PublishWorkflow(String serviceGroupName, WorkflowDescription workflow)
at Microsoft.SharePoint.WorkflowServices.WorkflowProxy.CreateDefinitionSubscription(String subscriptionName, String eventSource, List`1 eventTypes, String definitionName, IDictionary`2 metadata, WorkflowEventContext eventContext)
at Microsoft.SharePoint.WorkflowServices.FabricSubscriptionService.<>c__DisplayClass1.<CreateDefinitionSubscription>b__0()
at Microsoft.SharePoint.WorkflowServices.WorkflowServiceContextExtensions.InvokeWithEcosystemRetry(WorkflowServicesContext context, EcosystemRequiredMethod method)
at Microsoft.SharePoint.WorkflowServices.FabricSubscriptionService.CreateDefinitionSubscription(String subscriptionName, Guid eventSourceId, String eventSource, List`1 eventNames, String definitionName, IDictionary`2 metadata, WorkflowEventContext eventContext)
at Microsoft.SharePoint.WorkflowServices.WorkflowSubscriptionStorageEventReceiver.ItemUpdating(SPItemEventProperties properties)
Error3 - Microsoft.Workflow.Client.InternalServerException: An internal error occured. For more details, please see the server logs. HTTP headers received from the server - ActivityId: ba6e77cb-aaae-41a0-9cc8-1ea817d0045e. NodeId: ServerName.
Scope: /SharePoint/default/bc694777-7bbb-473e-ab2d-20087221a97a/5229793b-31a1-44b1-9b0b-374f38b762fd. Client ActivityId : a6daec9c-7139-7034-b4ee-edeb1f96ec2a. ---> System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
at SPRequest.AddOrUpdateItem: UserPrincipalName=i:0).w|s-1-5-21-182846760-3036401646-508972453-351846, AppPrincipalName= ,bstrUrl=http://sharepointsite ,bstrListName={48A21758-9123-48F0-9BDE-9EB632B07BC6} ,bAdd=False ,bSystemUpdate=False ,bPreserveItemVersion=False
,bPreserveItemUIVersion=False ,bUpdateNoVersion=False ,pbstrNewDocId=00000000-0000-0000-0000-000000000000 ,bHasNewDocId=False ,bstrVersion=16 ,bCheckOut=False ,bCheckin=False ,bUnRestrictedUpdateInProgress=True ,bMigration=False ,bPublish=False ,bstrFileName=<null>
Any help appreciated. Thanks in advance.Hi,
As I understand, you encountered the issue when you published a workflow on SharePoint 2013 workflow platform.
I wonder does it work well before when using 2013 workflow platform? If it works before, did you install any updates or change the configuration to the workflow related settings?
If this is the first time after you installed workflow manager 2013, then I’d recommend you try re-registering workflow service per the link below and post the result:
http://technet.microsoft.com/en-us/library/jj663115(v=office.15).aspx
http://technet.microsoft.com/en-us/library/jj658588(v=office.15).aspx
From the message you accessed workflow host uri, please make sure the account to wfsetup and wfservice account are both in wfadmins group.
http://blogs.msdn.com/b/briangre/archive/2013/02/20/least-privilege-configuration-for-windows-azure-workflow-with-sharepoint-2013.aspx
Regards,
Rebecca Tu
TechNet Community Support -
Problem refering to a custom activity in a SharePoint 2013 workflow
I have created a few custom activities to handle common tasks in a workflow. The activities are deployed in a separate sandbox solution from the workflows referencing them.
This has been working fine for a couple of months now, but suddenly I get an error when trying to activate the feature that provisions the workflow that refers to the custom activity (WriteMessage). The error is:
Error 1
Error occurred in deployment step 'Activate Features': Microsoft.Workflow.Client.ActivityValidationException: Workflow XAML failed validation due to the following errors:
Cannot create unknown type '{wf://workflow.windows.net/default/f0b36ec0-d40f-4df8-a99b-39f6dc4854a8/09e1bc2d-1cc8-4cff-ae22-32a52f54b685/$Activities}WriteMessage'. HTTP headers received from the server - ActivityId: ac291077-6536-4c63-b7b0-7701b6d29268. NodeId:
DKRDSSP15DEV03. Scope: /SharePoint/default/f0b36ec0-d40f-4df8-a99b-39f6dc4854a8/09e1bc2d-1cc8-4cff-ae22-32a52f54b685. Client ActivityId : e9d2bfd0-bb0e-4c28-bf55-8748368feb5b. ---> System.Net.WebException: The remote server returned an error: (400) Bad
Request.
at Microsoft.Workflow.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
at Microsoft.Workflow.Client.HttpGetResponseAsyncResult`1.End(IAsyncResult result)
at Microsoft.Workflow.Client.ClientHelpers.SendRequest[T](HttpWebRequest request, T content)
--- End of inner exception stack trace ---
at Microsoft.Workflow.Client.ClientHelpers.SendRequest[T](HttpWebRequest request, T content)
at Microsoft.Workflow.Client.WorkflowManagementClient.SendRequest[T](HttpWebRequest request, T content)
at Microsoft.Workflow.Client.ActivityManager.Publish(ActivityDescription description, Boolean overwriteXClassName, Boolean terminateDependentInstances)
at Microsoft.SharePoint.WorkflowServices.FabricWorkflowManagementClient.PublishActivity(String serviceGroupName, ActivityDescription activity, Boolean overwriteXClass, Nullable`1 terminateInstances)
at Microsoft.SharePoint.WorkflowServices.FabricWorkflowDeploymentProvider.PublishActivity(FabricWorkflowManagementClient client, ActivityDescription activityDefinition, String serviceGroupName)
at Microsoft.SharePoint.WorkflowServices.FabricWorkflowDeploymentProvider.<>c__DisplayClass5.<PublishDefinition>b__4()
at Microsoft.SharePoint.WorkflowServices.WorkflowServiceContextExtensions.InvokeWithEcosystemRetry(WorkflowServicesContext context, EcosystemRequiredMethod method)
at Microsoft.SharePoint.WorkflowServices.FabricWorkflowDeploymentProvider.PublishDefinition(WorkflowDefinition workflowDefinition)
at Microsoft.SharePoint.WorkflowServices.WorkflowDefinitionStorageEventReceiver.PublishDefinition(SPItemEventProperties properties)
0 0
Vestas.SP.CMS.AlarmReports
I have tried creating a simple workflow using the custom activity, by referencing the sandbox solution. This works fine, if I create the simple workflow in a new project and deploys it and activate the workflow feature. However, if I create a similar simple
workflow in the original solution and omit the original workflows. Then I still get the above error when deploying / activating the workflow feature.
How do I clean up my original project so it does not give me this error when deploying and activating the workflow feature?
best regards
Lars Kohsel
Best regards Lars KohselHi,
As the error still occur when you create a simple workflow in the original project, maybe some configurations have been changed in the project.
You can check with the new created project whether there are some difference configurations in the project.
There is a similar article for your reference.
http://blogs.msdn.com/b/cliffgreen/archive/2013/03/11/sharepoint-2013-workflow-deployment-errors.aspx
What’s more, you can also copy your original project code to the new project, then check whether it works.
If it works, the we can use the new project instead of the original project.
Thanks,
Jason
Forum Support
Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
[email protected]
Jason Guo
TechNet Community Support -
When FMLE stopped,Remote RTMP stream to FMS 4.5 with rtmfp?
When FMLE stopped,Remote RTMP stream to FMS 4.5 with rtmfp?
edit "applications/multicast/main.asc" ?
HELP ME !!! THANKS!!!
* File: main.asc
* The server-side portion of the multicast sample application.
* This app accepts publish and unpublish requests from FMLE, and republishes
* the live stream from FMLE into a target Flash Group.
// General Constants
// "Constants" representing multicast event types.
var TYPE_FUSION = 1;
var TYPE_IP = 2;
var TYPE_P2P = 3;
// StreamContext Description, Constants and Functions
* Type: StreamContext
* This application tracks the context for live streams published to the server
* that are being republished into a Flash Group. The StreamContext "type" used
* for this is just an Object containing the following members:
* client - The encoding/publishing client.
* streamName - The source Stream name as published by the client.
* type - The multicast event type.
* groupspec - The groupspec identifying the Flash Group and capabilities.
* address - IP multicast address (optional for pure P2P events).
* netConnection - A loopback NetConnection used for the mcastNetStream.
* mcastNetStream - The NetStream used to republish the source Stream into
* the Flash Group.
* netGroup - An (optional) NetGroup handle for the target Group.
* Only present for Fusion or P2P events.
* state - One of the state constants defined immediately below
* this comment.
var STATE_INIT = 0; // Starting state for a StreamContext.
var STATE_CONNECTING = 1; // Establishing loop-back connection.
var STATE_CONNECTED = 2; // Connection established.
var STATE_PUBLISH_PENDING = 3; // Attempting to publish.
var STATE_REPUBLISHING = 4; // Actively republishing to multicast.
var STATE_UNPUBLISHING = 5; // Shutting down multicast republish.
var STATE_UNPUBLISHED = 6; // Unpublished successfully.
var STATE_DISCONNECTING = 7; // Shutting down loopback connection.
var STATE_DISCONNECTED = 8; // Connection shut down. Done.
* Registers a source Stream published by the specified client, along with the
* context for the multicast event, as a StreamContext Object.
* @param client - The Client publishing the stream.
* @param streamName - The source Stream name.
* @param params - The parameters resulting from parsing the source Stream's
* query string.
* @return The new StreamContext Object for the registered Stream.
function registerStream(client, streamName, params)
var streamContext = { "client": client,
"streamName": streamName,
"type": params["fms.multicast.type"],
"groupspec": params["fms.multicast.groupspec"] };
if (params["fms.multicast.interface"])
streamContext["interfaceAddress"] = params["fms.multicast.interface"];
if (params["fms.multicast.address"])
streamContext["address"] = params["fms.multicast.address"],
streamContext.state = STATE_INIT;
updateStreamContextLookups(streamContext);
trace("Registered multicast context for source stream: " + streamName);
return streamContext;
* Updates the indexed lookups installed for the passed StreamContext Object
* with the application.
* @param streamContext - The StreamContext Object to (re)index.
function updateStreamContextLookups(streamContext)
application.streamTable[streamContext.streamName] = streamContext;
if (streamContext.netConnection)
application.netConnTable[streamContext.netConnection] = streamContext;
if (streamContext.mcastNetStream)
application.mcastNetStreamTable[streamContext.mcastNetStream] = streamContext;
if (streamContext.netGroup)
application.netGroupTable[streamContext.netGroup] = streamContext;
* Provides access to the StreamContext Object for a registered source Stream
* by name.
* @param streamName - A registered source Stream name.
* @return The associated StreamContext Object; undefined if the source Stream
* name is not registered.
function getStreamContextForSourceStream(streamName)
return application.streamTable[streamName];
* Provides access to the StreamContext Object for a given server-side
* NetConnection hosting a multicast NetStream.
* @param netConnection - A server-side NetConnection.
* @return The associated StreamContext Object; undefined if the passed
* NetConnection is not indexed to a StreamContext.
function getStreamContextForNetConnection(netConnection)
return application.netConnTable[netConnection];
* Provides access to the StreamContext Object for a given multicast NetStream.
* @param netStream - A multicast NetStream.
* @return The associated StreamContext Object; undefined if the passed
* NetStream is not indexed to a StreamContext.
function getStreamContextForMulticastNetStream(netStream)
return application.mcastNetStreamTable[netStream];
* Provides access to the StreamContext Object for a given NetGroup associated
* with a multicast NetStream.
* @param netGroup - A NetGroup.
* @return The associated StreamContext Object; undefined if the passed
* NetGroup is not indexed to a StreamContext.
function getStreamContextForNetGroup(netGroup)
return application.netGroupTable[netGroup];
* Unregisters the StreamContext from the application.
* @param streamContext - The StreamContext Object to unregister.
function unregisterStreamContext(streamContext)
if (streamContext.netConnection)
delete application.netConnTable[streamContext.netConnection];
if (streamContext.mcastNetStream)
delete application.mcastNetStreamTable[streamContext.mcastNetStream];
if (streamContext.netGroup)
delete application.netGroupTable[streamContext.netGroup];
trace("Unregistered multicast context for source stream: " +
streamContext.streamName);
// Application callback functions
* Initializes global StreamContext lookup tables.
application.onAppStart = function()
application.streamTable = {};
application.netConnTable = {};
application.mcastNetStreamTable = {};
application.netGroupTable = {};
* Handles a publish event for the application by validating the request
* and bridging the published stream into a target Flash Group. Invalid
* publish requests are ignored and the publishing client's connection
* is closed.
* @param client - The publishing client.
* @param stream - The published stream.
application.onPublish = function(client, stream)
//trace("Handling publish request for source stream: " + stream.name);
var params = parseQueryString(stream.publishQueryString);
if (!validateStreamParams(params))
application.disconnect(client);
return;
var prevContext = getStreamContextForSourceStream(stream.name);
if (prevContext)
forceCloseStreamContext(prevContext);
// Register source Stream, and kick off the async process that will
// eventually wire-up the associated multicast NetStream.
var streamContext = registerStream(client, stream.name, params);
openMulticastConnection(streamContext);
* Handles an unpublish event for the application by shutting down
* any associated multicast NetStream.
* @param client - The unpublishing client.
* @param stream - The source stream being unpublished.
application.onUnpublish = function(client, stream)
trace("Handling unpublish request for source stream: " + stream.name);
var streamContext = getStreamContextForSourceStream(stream.name);
if (streamContext && (streamContext.state <= STATE_REPUBLISHING))
destroyStreamContext(streamContext);
// Callback functions for NetConnection and multicast NetStream/NetGroup wiring.
* First step in setting up a republished multicast NetStream; open the loopback
* connection it requires.
* @param streamContext - The StreamContext Object for the publish event.
function openMulticastConnection(streamContext)
var nc = new NetConnection();
nc.onStatus = netConnectionStatusHandler;
streamContext.netConnection = nc;
updateStreamContextLookups(streamContext);
streamContext.state = STATE_CONNECTING;
nc.connect(resetUriProtocol(streamContext.client.uri, "rtmfp"));
* Status event handler for the loopback NetConnection used by the multicast
* NetStream. Advances setup upon successful connection, or triggers or advances
* tear-down as a result of connection loss or an unpublish and clean shutdown.
* @param info - The status info Object.
function netConnectionStatusHandler(info)
var streamContext = getStreamContextForNetConnection(this);
trace("Multicast NetConnection Status: " + info.code +
(streamContext ? ", Source stream: " + streamContext.streamName : ", Not associated with a source stream."));
if (streamContext)
switch (info.code)
case "NetConnection.Connect.Success":
streamContext.state = STATE_CONNECTED;
// If event type is Fusion or P2p, wire up a NetGroup for neighbor
// bootstrapping and maintenance ahead of (re)publishing the stream.
var type = streamContext.type;
if (type == TYPE_FUSION || type == TYPE_P2P)
initNetGroup(streamContext);
else
initMulticastNetStream(streamContext);
break;
case "NetConnection.Connect.Failed":
case "NetConnection.Connect.Rejected":
case "NetConnection.Connect.AppShutdown":
trace("MULTICAST PUBLISH ERROR: Failed to establish server-side NetConnection for use by multicast NetStream. " +
"Status code: " + info.code + ", description: " + info.description + ", Source stream: " +
streamContext.streamName);
streamContext.state = STATE_DISCONNECTED;
destroyStreamContext(streamContext);
break;
case "NetConnection.Connect.Closed":
if (streamContext.state < STATE_DISCONNECTING)
trace("MULTICAST PUBLISH ERROR: Unexpected server-side NetConnection close. " +
"Status code: " + info.code + ", description: " + info.description + ", Source stream: " +
streamContext.streamName);
streamContext.state = STATE_DISCONNECTED;
destroyStreamContext(streamContext);
break;
default:
// Ignore.
* Initializes the multicast NetGroup following a successful connection of its
* underlying loopback NetConnection. This hook is optional and only runs for
* event types of Fusion and pure P2P.
* @param streamContext - The StreamContext Object for the multicast publish.
function initNetGroup(streamContext)
var ng = null;
try
ng = new NetGroup(streamContext.netConnection, streamContext.groupspec);
catch (e)
trace("MULTICAST PUBLISH ERROR: Failed to construct NetGroup. Error: "
+ e.name + (e.message ? " " + e.message : "") +
", Source stream: " + streamContext.streamName);
destroyStreamContext(streamContext);
return;
ng.onStatus = netGroupStatusHandler;
streamContext.netGroup = ng;
updateStreamContextLookups(streamContext);
* Status event handler for the multicast NetGroup. Advances to initializing the
* multicast NetStream upon successful NetGroup connect. Otherwise, triggers
* shut down.
* @param info - The status info Object.
function netGroupStatusHandler(info)
var streamContext = getStreamContextForNetGroup(this);
trace("Multicast NetGroup Status: " + info.code +
(streamContext ? ", Source stream: " + streamContext.streamName : ", Not associated with a source stream."))
if (streamContext)
switch (info.code)
case "NetGroup.Connect.Success":
initMulticastNetStream(streamContext);
break;
case "NetGroup.Connect.Failed":
case "NetGroup.Connect.Rejected":
trace("MULTICAST PUBLISH ERROR: Failed to connect multicast NetGroup. " +
"Status code: " + info.code + ", description: " + info.description +
", Source stream: " + streamContext.streamName);
destroyStreamContext(streamContext);
break;
case "NetGroup.MulticastStream.UnpublishNotify":
// At this point, multicast publishers will be notified;
// continue shut down.
destroyStreamContext(streamContext);
break;
default:
// Ignore.
* Initializes the multicast NetStream following a successful connection of its
* underlying loopback NetConnection.
* @param streamContext - The StreamContext Object for the multicast publish.
function initMulticastNetStream(streamContext)
var ns = null;
try
ns = new NetStream(streamContext.netConnection, streamContext.groupspec);
catch (e)
trace("MULTICAST PUBLISH ERROR: Failed to construct multicast NetStream. Error: " +
e.name + (e.message ? " " + e.message : "") +
", Source stream: " + streamContext.streamName);
destroyStreamContext(streamContext);
return;
var type = streamContext.type;
if (type == TYPE_FUSION || type == TYPE_IP)
var iAddr = (streamContext.interfaceAddress) ? streamContext.interfaceAddress : null;
try
trace("Multicast NetStream will publish to IP address: " + streamContext.address +
" on interface address: " + ((iAddr) ? iAddr : "default") +
", Source stream: " + streamContext.streamName);
ns.setIPMulticastPublishAddress(streamContext.address, iAddr);
catch (e2)
trace("MULTICAST PUBLISH ERROR: Failed to assign IP multicast address and port for publishing. Address: "
+ streamContext.address + " on interface address: " + ((iAddr) ? iAddr : "default") +
", Source stream: " + streamContext.streamName);
destroyStreamContext(streamContext);
return;
ns.onStatus = netStreamStatusHandler;
streamContext.mcastNetStream = ns;
updateStreamContextLookups(streamContext);
streamContext.state = STATE_PUBLISH_PENDING;
* Status event handler for the multicast NetStream. Advances state upon successful
* connect and publish, or upon successful unpublish. Triggers tear-down if we fail
* to attach to a source Stream to republish.
* @param info - The status info Object.
function netStreamStatusHandler(info)
var streamContext = getStreamContextForMulticastNetStream(this);
trace("Multicast NetStream Status: " + info.code +
(streamContext ? ", Source stream: " + streamContext.streamName : ", Not associated with a source stream."))
if (streamContext)
switch (info.code)
case "NetStream.Connect.Success":
if (!this.attach(Stream.get(streamContext.streamName)))
trace("MULTICAST PUBLISH ERROR: Failed to attach multicast NetStream to source. Source stream: " +
streamContext.streamName);
destroyStreamContext(streamContext);
//var stream;
//stream = Stream.get("liveStream");
//return;
}else{
this.publish(streamContext.streamName, "live");
break;
case "NetStream.Publish.Start":
streamContext.state = STATE_REPUBLISHING;
break;
case "NetStream.Unpublish.Success":
streamContext.state = STATE_UNPUBLISHED;
// Wait for unpublish notify event if the context has a NetGroup;
// otherwise continue shut down now.
if (!streamContext.netGroup)
destroyStreamContext(streamContext);
break;
default:
// Ignore.
* The common tear-down hook. Other functions that manage or shut down
* the StreamContext Object delegate to this function upon detecting a fatal
* error or during shut down.
* @param streamContext - The StreamContext Object for the source Stream and
* (potentially wired-up) multicast NetStream.
function destroyStreamContext(streamContext)
// Unregister by Stream name immediately; lookups by NetConnection, NetGroup
// and multicast NetStream remain in place until tear-down is complete.
delete application.streamTable[streamContext.streamName];
switch (streamContext.state)
case STATE_REPUBLISHING:
streamContext.mcastNetStream.attach(false);
streamContext.mcastNetStream.publish(false);
streamContext.state = STATE_UNPUBLISHING;
return;
case STATE_CONNECTING:
case STATE_CONNECTED:
case STATE_PUBLISH_PENDING:
case STATE_UNPUBLISHED:
// Delete status handler callbacks and cleanup in case we arrived here
// as a result of a force close.
if (streamContext.netGroup)
delete streamContext.netGroup.onStatus;
if (streamContext.mcastNetStream)
streamContext.mcastNetStream.attach(false);
delete streamContext.mcastNetStream.onStatus;
streamContext.netConnection.close();
streamContext.state = STATE_DISCONNECTING;
return;
default:
// Fall-through.
// At this point, we either never got to the republishing state or we've
// proceeded through the clean shut down steps above. Everything for this
// StreamContext can go away.
unregisterStreamContext(streamContext);
* Utility function used to force close a StreamContext in the event that we
* start handling a republish of a Source stream before the context for its
* prior incarnation has been torn down.
* @param streamContext - The StreamContext Object for the source Stream.
function forceCloseStreamContext(streamContext)
trace("Force closing previous multicast context for source stream: " + stream.name);
prevContext.state = STATE_UNPUBLISHED;
destroyStreamContext(prevContext);
// Client callback functions
* A no-op. Answers the RPC in the fashion expected by encoders, but the real
* work happens in application.onPublish.
* @param streamName - The name of the stream being published.
Client.prototype.FCPublish = function(streamName)
this.call("onFCPublish",
null,
{code:"NetStream.Publish.Start", description:streamName});
* A no-op. Answers the RPC in the fashion expected by encoders, but the real
* work happens in application.onUnpublish.
* @param streamName - The name of the stream being unpublished.
Client.prototype.FCUnpublish = function(streamName)
this.call("onFCUnpublish",
null,
{code:"NetStream.Unpublish.Success", description:streamName});
* If the client invoker's ip matches what was captured for a currently publishing
* stream, assume it's the same client and reset the stream. Otherwise, ignore.
* @param streamName - The name of the stream being released.
Client.prototype.releaseStream = function(streamName)
var streamContext = getStreamContextForSourceStream(streamName);
if (streamContext &&
(streamContext.client.ip == this.ip) &&
(streamContext.state <= STATE_REPUBLISHING))
// Only tear-down an orphaned stream if it's not
// already shutting down (see state check above).
destroyStreamContext(streamContext);
// Helper functions
* Validates that a newly published stream has correct metadata (e.g. query
* string parameters) to republish into a Flash Group. This function also
* writes a message to the application log for any validation failures.
* @param params - The quiery string parameters for the source Stream.
* @return true if valid; otherwise false.
function validateStreamParams(params)
var empty = true;
for (var param in params)
empty = false;
break;
if (empty)
trace("MULTICAST PUBLISH ERROR: Stream query string is empty.");
return false;
if (!params["fms.multicast.type"])
trace("MULTICAST PUBLISH ERROR: Stream query string does not specify a 'fms.multicast.type'.");
return false;
var type = params["fms.multicast.type"];
if (type != 1 && type != 2 && type != 3)
trace("MULTICAST PUBLISH ERROR: 'fms.multicast.type' has invalid value: " + type);
return false;
if (!params["fms.multicast.groupspec"])
trace("MULTICAST PUBLISH ERROR: Stream query string does not specify a 'fms.multicast.groupspec'.");
return false;
// Fusion and IP require an address:port.
if ((type == 1 || type == 2) &&
!params["fms.multicast.address"])
trace("MULTICAST PUBLISH ERROR: Stream query string does not specify a 'fms.multicast.address'.");
return false;
// No obvious validation issues.
return true;
* Parses the supplied query string, and if valid, returns an Object populated
* with the name-value pairs contained in the query string. The simple processing
* here does not preserve multiple name-value pairings having the same name; the
* last value seen wins. Parameters with no value are mapped to "" (empty String)
* in the returned Object.
* @param queryString - A query string portion of a URI, not including the leading
* '?' character.
* @return An Object containing a key-value mapping for each name-value parameter
* defined in the query string; Object is empty if the query string is
* invalid.
function parseQueryString(queryString)
var result = {};
var decoded = "";
try
decoded = decodeURIComponent(queryString);
catch (e) // Invalid URI component; return empty result.
return result;
if (decoded.length)
var params = decoded.split('&');
for (var i in params)
var pair = params[i];
var sepIndex = pair.indexOf('=');
if (sepIndex != -1)
var name = pair.substr(0, sepIndex);
result[name] = pair.substr(sepIndex + 1);
else
result[pair] = "";
return result;
* Utility function used to swap out the protocol (scheme) portion
* of a given URI with an alternate.
* @param uri - The full URI.
* @param desiredProtocol - The replacement protocol.
* @return The URI with its protocol replaced.
function resetUriProtocol(uri, desiredProtocol)
var sepIndex = uri.indexOf("://");
return desiredProtocol + uri.substr(sepIndex);HELP ME !!! THANKS!!!
-
Issue with allowedHTMLdomains.txt in Live App
Hi,
My Purpose is to record live streams on server side and play recorded files later.
What i have done is -
1. Copied All files of applications/live in some safe location.
2. Copied all files from samples/applications/live to applications/live folder. (Deleted main.far from live folder)
3. Restricted SWF and HTML to mydomain in these files - allowedHTMLdomains.txt and allowedSWFdomains.txt
4. In main.asc i added these line in the end
var mystream;
var intervalID;
application.onConnect = function(clientobj)
return true;
application.onPublish = function(clientObj,streamObj){
trace("In app pub:");
mystream = Stream.get(streamObj.name);
mystream.onStatus = function(info)
trace("mystream onstatus:"+ info.code);
mystream.record();
trace("Got it via FMLE = " + streamObj.name);
application.onUnpublish = function(clientObj,streamObj){
mystream.record(false);
5. Then i restarted FMS and tried streaming using FLash Media Encoder. I was able to live stream and then i stopped it.
6. A FLV File was recorded in application/live folder with the stream name that i used in encoder.
Now the issues i have, i am able to view live video on my domain as well as some other domain, that means allowedHTMLdomains.txt and allowedSWFdomains.txt did not worked. Another issue is that i am not able to view recorded video after i stopped encoder but i was able see live video before stopping. i am using jwplayer to view the video and using flashvars streamer(rtmp://xx.xx.xx.xxx/live) and file(abc) to view the live and recorded video.I am getting another issue now.
i was able to record with this app when i changed fms.ini
i added this line in fms.ini
LIVE2_DIR = /opt/adobe/fms/applications/webroot/live_recorded
also changed Application.xml in new app and changed this line <Streams>/;${LIVE2_DIR}</Streams>
After this i was able to record files using my previously mentioned code. But i want to record live videos in same app in streams/intancename/ folder or streams/_definst_ folder
i also created streams/_definst_ folder in inside myapp folder with 777 permissions
after this i changed fms.ini again and changed LIVE2_DIR = /opt/adobe/fms/applications/webroot/live_recorded to LIVE2_DIR = /opt/adobe/fms/applications/myapp
But now there is no recording. Please help me what i am doing wrong.
Again i am pasting my code of main.asc here with was a copy of samples/appplications/live folder-
* application.onAppStart:
* is called when application load. It contains Live (out of the box)
* application specific initializations.
application.onAppStart = function()
// Logging
trace("Starting Live Service...");
// Turning on the Authentication by default
this.HTMLDomainsAuth = true;
this.SWFDomainsAuth = true;
// Populating the list of domains which are allowed to host HTML file
// which in turn may embed a SWF that connects to this application
this.allowedHTMLDomains = this.readValidDomains("allowedHTMLdomains.txt","HTMLDomains");
// Populating the list of domains which are allowed to host a SWF file
// which may connect to this application
this.allowedSWFDomains = this.readValidDomains("allowedSWFdomains.txt","SWFDomains");
// Logging
if(this.HTMLDomainsAuth){
trace("Authentication of HTML page URL domains is enabled");
if(this.SWFDomainsAuth){
trace("Authentication of SWF URL domains is enabled");
trace("...loading completed.");
* application.validate:
* function to validate a given URL by matching through a list of
* allowed patterns.
* Parameters:
* url: contains the input url string.
* patterns: Array; an array of permmited url patterns.
* return value:
* true; when 'url domain" contains a listed domains as a suffix.
* false; otherwise.
application.validate = function( url, patterns )
// Convert to lower case
url = url.toLowerCase();
var domainStartPos = 0; // domain start position in the URL
var domainEndPos = 0; // domain end position in the URL
switch (url.indexOf( "://" ))
case 4:
if(url.indexOf( "http://" ) ==0)
domainStartPos = 7;
break;
case 5:
if(url.indexOf( "https://" ) ==0)
domainStartPos = 8;
break;
if(domainStartPos == 0)
// URL must be HTTP or HTTPS protocol based
return false;
domainEndPos = url.indexOf("/", domainStartPos);
if(domainEndPos>0)
colonPos = url.indexOf(":", domainStartPos);
if( (colonPos>0) && (domainEndPos > colonPos))
// probably URL contains a port number
domainEndPos = colonPos; // truncate the port number in the URL
for ( var i = 0; i < patterns.length; i++ )
var pos = url.lastIndexOf( patterns[i]);
if ( (pos > 0) && (pos < domainEndPos) && (domainEndPos == (pos + patterns[i].length)) )
return true;
return false;
* application.onConnect:
* Implementation of the onConnect interface function (optional).
* it is invoked whenever a client connection request connection. Live app uses this
* function to authenticate the domain of connection and authorizes only
* for a subscriber request.
application.onConnect = function( p_client, p_autoSenseBW )
// Check if pageUrl is from a domain we know.
// Check pageurl
// A request from Flash Media Encoder is not checked for authentication
if( (p_client.agent.indexOf("FME")==-1) && (p_client.agent.indexOf("FMLE")==-1))
// Authenticating HTML file's domain for the request :
// Don't call validate() when the request is from localhost
// or HTML Domains Authentication is off.
if ((p_client.ip != "127.0.0.1") && application.HTMLDomainsAuth
&& !this.validate( p_client.pageUrl, this.allowedHTMLDomains ) )
trace("Authentication failed for pageurl: " + p_client.pageUrl + ", rejecting connection from "+p_client.ip);
return false;
// Authenticating the SWF file's domain for the request :
// Don't call validate() when the request is from localhost
// or SWF Domains Authentication is off.
if ((p_client.ip != "127.0.0.1") && application.SWFDomainsAuth
&& !this.validate( p_client.referrer, this.allowedSWFDomains ) )
trace("Authentication failed for referrer: " + p_client.referrer + ", rejecting connection from "+p_client.ip);
return false;
// Logging
trace("Accepted a connection from IP:"+ p_client.ip
+ ", referrer: "+ p_client.referrer
+ ", pageurl: "+ p_client.pageUrl);
}else{
// Logging
trace("Adobe Flash Media Encoder connected from "+p_client.ip);
// As default, all clients are disabled to access raw audio and video and data bytes in a stream
// through the use of BitmapData.draw() and SoundMixer.computeSpectrum()., Please refer
// Stream Data Access doccumentations to know flash player version requirement to support this restriction
// Access permissions can be allowed for all by uncommenting the following statements
//p_client.audioSampleAccess = "/";
//p_client.videoSampleAccess = "/";
this.acceptConnection(p_client);
// A connection from Flash 8 & 9 FLV Playback component based client
// requires the following code.
if (p_autoSenseBW)
p_client.checkBandwidth();
else
p_client.call("onBWDone");
p_client.setBandwidthLimit(74000, 74000);
application.acceptConnection(p_client);
* Client.prototype.getPageUrl
* Public API to return URL of the HTML page.
Client.prototype.getPageUrl = function() {
return this.pageUrl;
* Client.prototype.getReferrer
* Public API to return Domain URL of the client SWF file.
Client.prototype.getReferrer = function() {
return this.referrer;
* FCPublish :
* FME calls FCPublish with the name of the stream whenever a new stream
* is published. This notification can be used by server-side action script
* to maintain list of all streams or also to force FME to stop publishing.
* To stop publishing, call "onFCPublish" with an info object with status
* code set to "NetStream.Publish.BadName".
Client.prototype.FCPublish = function( streamname )
// setup your stream and check if you want to allow this stream to be published
if ( true) // do some validation here
{ // this is optional.
this.call("onFCPublish", null, {code:"NetStream.Publish.Start", description:streamname});
else
this.call("onFCPublish", null, {code:"NetStream.Publish.BadName", description:streamname});
* FCUnpublish :
* FME notifies server script when a stream is unpublished.
Client.prototype.FCUnpublish = function( streamname )
// perform your clean up
this.call("onFCUnpublish", null, {code:"NetStream.Unpublish.Success", description:streamname});
* releaseStream :
* When FME connection to FMS drops during a publishing session it will
* try and republish the stream when connection is restored. On certain
* occasions FMS will reject the new stream because server is still
* unaware of the connection drop, sometimes this can take a few minutes.
* FME calls "releaseStream" method with the stream name and this can be
* used to forcibly clear the stream.
Client.prototype.releaseStream = function(streamname)
s = Stream.get(streamname);
s.play(false);
* application.readValidDomains
* Function to read Allowed domain file
* Parameters:
* fileName:
* name of the file in the application directory
* which contains one valid domain name per line. This file can contain
* comments followed by a '#' as the very first charector in that line.
* a non-comment entry with a space is considered as an error case.
* returns
* an array in which each entry contains a domain name
* listed in the file.
application.readValidDomains = function( fileName , domainsType )
var domainFile = new File(fileName);
var domainsArray = new Array();
var index = 0;
var lineCount = 0;
var tempLine;
domainFile.open("text", "read");
// Read the file line-by-line and fill the domainsArray
// with valid entries
while (domainFile.isOpen && ! domainFile.eof() )
tempLine = domainFile.readln();
lineCount++;
if( !tempLine || tempLine.indexOf("#") == 0)
continue;
tempLine = tempLine.trim();
if(tempLine.indexOf(" ")!=-1)
trace("undesired <space>, domain entry ignored. "+fileName+":"+(lineCount+1));
else
domainsArray[index] = tempLine.toLowerCase();
index++;
if(tempLine == "*")
switch (domainsType){
case "HTMLDomains":
trace ("Found wildcard (*) entry: disabling authentication for HTML file domains ") ;
application.HTMLDomainsAuth = false;
break;
case "SWFDomains":
trace ("Found wildcard (*) entry: disabling authentication for SWF file domains ") ;
this.SWFDomainsAuth = false;
break;
default:
// Do nothing
break;
} // End while
// Something is wrong! the domains file must be accessible.
if( !domainFile.isOpen){
trace("Error: could not open '"+fileName+"', rejecting all clients except localhost. ");
else
domainFile.close();
return domainsArray;
* String.prototype.trim:
* Function to trim spaces in start an end of an input string.
* returns:
* a trimmed string without any leading & ending spaces.
String.prototype.trim = function () {
return this.replace(/^\s*/, "").replace(/\s*$/, "");
var mystream;
application.onPublish = function(clientObj,streamObj){
mystream = Stream.get("mp4:"+streamObj.name+".f4v");
if (mystream)
mystream.record("record",600);
mystream.play(streamObj.name,-2,-1);
application.onUnpublish = function(clientObj,streamObj){
mystream.record(false); -
Problem with JMS from session bean
My guess is that in your effort to work around the
clustering/ejb/jndi problems, you have a producer
sending on one topic, and a consumer listening on
another topic. You can check to see if they are the
same destination using the (uncompiled) code snippets
below at both the producer and consumer ends.
import weblogic.jms.common.DestinationImpl;
Topic topic;
DestinationImpl destination = (DestinationImpl) topic;
System.out.println("name = " + destination.getServerName() + "/" +
destination.getName());
System.out.println("back-end id = " + destination.getBackEndId());
System.out.println("destination id = " + destination.getDestinationId());
_sjz.
"Malcolm Robbins" <[email protected]> wrote in message
news:[email protected]...
>
This was also posted to the EJB newsgroup and was asked to post the secondissue
here. Please focus on the second issue, but the first providesbackground.
>
>
I have discovered two significant problems in WLS6.0 with JNDi and JMSthat do
not occur in the Sun Reference implementation (1.3 Beta).
Attached is some code you can try to see the problem.
I have developed a JmsClient that simply looks up a session bean andpasses it
a string to publish. The session bean is meant to publish to a JMS topic.
However I have discovered two problems:
1) In teh ejbCreate() method I look up the topic connection factory andtopic
in JNDI. These are referenced as "java:comp/env/jms/JmsConnectionFactory"and
"java:comp/env/jms/JmsTopic" respectively. Here's a fragment of theejb-jar
descriptor
<resource-ref>
<description>The (probably durable) Topic Connection Factory to connectto</description>
<res-ref-name>jms/JmsConnectionFactory</res-ref-name>
<res-type>javax.jms.TopicConnectionFactory</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-env-ref>
<description>The Jms Source Topic to publish to</description>
<resource-env-ref-name>jms/JmsTopic</resource-env-ref-name>
<resource-env-ref-type>javax.jms.Topic</resource-env-ref-type>
</resource-env-ref>
As you can see they are resource references and resoruce environmentreferences
respectively. The weblogic-ejb-jar maps these to the real JNDI names"TopicConnectionFactory"
amd "SchemaTopic" respectively as shown below by the fragment:
<weblogic-ejb-jar>
...etc...
<reference-descriptor>
<resource-description>
<res-ref-name>jms/JmsConnectionFactory</res-ref-name>
<jndi-name>TopicConnectionFactory</jndi-name>
</resource-description>
<resource-env-description>
<res-env-ref-name>jms/JmsTopic</res-env-ref-name>
<jndi-name>SchemaTopic</jndi-name>
</resource-env-description>
</reference-descriptor>
Now here's the first problem. When this is deployed the resourceenvironment
"logical" name (JNDI linkref) for the topic is not defined. The code willhappily
find the connection factory (presuming you've set these administeredobjects at
the console).
2) The second problem now arises. In the code I have ahcked it so thatwhen
the JNDI lookup fails it tries looking up the real topic in JNDI(SchemaTopic)
directly.
This works and teh bean now appears to work, albeit with a directlyhardcoded
JNDI reference in it. However, if you hook up a standard JMS consumer tothat
topic it will not consuem the message that is published!!! While thestats clock
up at the console the message appears to go into a black hole. I canprovdie
a stadnard consumer if you need one.
I have the code working fine as-is in teh Sun Reference implementation soI presume
these are bugs with WL6.0.
Can anyone advise workarounds and/or fix the problem? -
Unable to insert into remote table
I have created a dblink (public), and a synonym(synonym1) pointing to a table in the remote database.
When I try to create a form based on the synonym the form creation fails with many errors saying "Synonym Trnslation no longer supported". I have tested the synonym via a dynamic page an it is valid and working.
I then try to refer to the object directly by using owner.table@dblink. This works fine until I try and insert into the remote table. Then I get the error "An unexpected error occurred: ORA-22816: unsupported feature with RETURNING clause (WWV-16016) ". Has anyone solved this. I can only assume that portal can somehow insert data into a remote table via a form. What use is it if it cant???I am not clear on that Synonym ... but the following note solved the problem:
Subject: How to create a form on a view (and avoid WWV-16016)
Doc ID: Note:155654.1 Type: PROBLEM
Last Revision Date: 19-MAR-2003 Status: PUBLISHED
Problem Description
Portal 3.0.9.X
If you create an updateable view on two tables, with the needed
associated "INSTEAD_OF" trigger to perform the insert or update.
A Form on this view created in Portal returns the following error on
insert or update:
An unexpected error occurred: ORA-22816: unsupported feature with
RETURNING clause (WWV-16016).
Let's take a sample:
CREATE OR REPLACE VIEW V_EMP_DEPT ( EMPNO,
ENAME, JOB, DEPTNO, DNAME,
LOC ) AS select
e.empno
,e.ename
,e.job
,d.deptno
,d.dname
,d.loc
from emp e, dept d
where e.deptno = d.deptno
grant select,insert,update,delete on v_emp_dept to public;
create or replace TRIGGER VEMPDEPT_INSTEAD_OF_TRG
INSTEAD OF UPDATE or INSERT
ON v_emp_dept
REFERENCING OLD AS OLD NEW AS NEW
declare
begin
if updating then
if :new.empno != :old.empno then
raise_application_error(20001,'EMPNO could not be modified');
end if;
if :new.loc != :old.loc then
raise_application_error(20001,'LOC could not be modified');
end if;
if :new.dname != :old.dname then
raise_application_error(20001,'dname could not be modified');
end if;
if :new.ename != :old.ename then
update emp set ename=:new.ename where empno = :old.empno;
end if;
if :new.job != :old.job then
update emp set job=:new.job where empno = :old.empno;
end if;
if :new.deptno != :old.deptno then
update emp set deptno=:new.deptno where empno = :old.empno;
end if;
end if;
if inserting then
-- specify only valid deptumbers
insert into emp(empno,ename,job,deptno) values
(:new.empno,:new.ename,:new.job,:new.deptno);
end if;
end;
- Create a "Forms Based on a Table or View" on this view : 'V_EMP_DEPT'
- In the step 4, choose 'order by dname' in place of 'rowid'
The rest is default
- Run the form
- Push on the button query
- change one of the field and push the update button
You will see the error
Error: An unexpected error occurred: ORA-22816: unsupported feature
with RETURNING clause (WWV-16016)
Explanation
You are running in Bug 1589656. The code generated by Portal is using
RETURN clause for the UPDATE or INSERT SQL call to get the ROWID.
This is not possible on a VIEW created on two (or more) tables.
Solution Description
A possible workaround is to replace the insert button code and update button
code with calls to procedures doing exactly what is done in the trigger.
Assumption is made that the empno column could not be updated.
This implies that the validation options updatable checkbox for the empno column
is unchecked.
In the above example, this gives:
-- procedure to insert data as done in the trigger
create or replace procedure V_EMP_DEPT_INSERT(
p_session in out PORTAL30.wwa_api_module_session
IS
"_block" varchar2(30) := 'DEFAULT';
rec SCOTT.V_EMP_DEPT%ROWTYPE;
begin
rec.EMPNO:=p_session.get_value_as_NUMBER(
p_block_name => "_block",
p_attribute_name => 'A_EMPNO',
p_index => 1
rec.ENAME:=p_session.get_value_as_VARCHAR2(
p_block_name => "_block",
p_attribute_name => 'A_ENAME',
p_index => 1
rec.JOB:=p_session.get_value_as_VARCHAR2(
p_block_name => "_block",
p_attribute_name => 'A_JOB',
p_index => 1
rec.DEPTNO:=p_session.get_value_as_NUMBER(
p_block_name => "_block",
p_attribute_name => 'A_DEPTNO',
p_index => 1
insert into scott.emp(empno,ename,job,deptno)
values (rec.empno,rec.ename,upper(rec.job),rec.deptno);
exception
when others then
rollback;
raise;
end;
-- procedure that update data as done in the trigger
create or replace procedure V_EMP_DEPT_UPDATE(
p_session in out PORTAL30.wwa_api_module_session
IS
"_block" varchar2(30) := 'DEFAULT';
old_rec SCOTT.V_EMP_DEPT%ROWTYPE;
new_rec SCOTT.V_EMP_DEPT%ROWTYPE;
begin
new_rec.EMPNO:=p_session.get_value_as_NUMBER(
p_block_name => "_block",
p_attribute_name => 'A_EMPNO',
p_index => 1
new_rec.ENAME:=p_session.get_value_as_VARCHAR2(
p_block_name => "_block",
p_attribute_name => 'A_ENAME',
p_index => 1
new_rec.JOB:=p_session.get_value_as_VARCHAR2(
p_block_name => "_block",
p_attribute_name => 'A_JOB',
p_index => 1
new_rec.DEPTNO:=p_session.get_value_as_NUMBER(
p_block_name => "_block",
p_attribute_name => 'A_DEPTNO',
p_index => 1
new_rec.LOC:=p_session.get_value_as_NUMBER(
p_block_name => "_block",
p_attribute_name => 'A_LOC',
p_index => 1
select empno, ename, job, deptno, loc
into old_rec.empno, old_rec.ename, old_rec.job,
old_rec.deptno, old_rec.loc from scott.V_EMP_DEPT
where empno = new_rec.empno;
if new_rec.empno != old_rec.empno then
raise_application_error(20001,'EMPNO could not be modified');
end if;
if new_rec.loc != old_rec.loc then
raise_application_error(20001,'LOC could not be modified');
end if;
if new_rec.dname != old_rec.dname then
raise_application_error(20001,'dname could not be modified');
end if;
if new_rec.ename != old_rec.ename then
update scott.emp set ename=new_rec.ename where empno =
old_rec.empno;
end if;
if new_rec.job != old_rec.job then
update scott.emp set job=new_rec.job where empno = old_rec.empno;
end if;
exception
when NO_DATA_FOUND then
raise_application_error(20001,'EMPNO could not be modified');
end;
After creating this two procedures you have to edit the form and replace the
Insert and Update button PLSQL event handling code.
For the insert button: Select Insert in the PL/SQL Button Event Handler window
and replace the original code with the following one::
--- Type your PL/SQL code here...
-- doInsert;--- This is the default handler
--- ...and here, thanks...
V_EMP_DEPT_INSERT( p_session => p_session);
For the update button: Select Update in the PL/SQL Button Event Handler window
and replace the original code with the following one:
--- Type your PL/SQL code here...
-- doUpdate;--- This is the default handler
--- ...and here, thanks...
V_EMP_DEPT_UPDATE( p_session => p_session );
Remarks
1) Don't forget to uncheck the updatable validation option for the empno column or
you may see some errors raised by the update procedure or update the wrong record.
2) If you don't want to write the "instead of trigger", you can simplify
the code above by:
- writing no instead of trigger at all
- write the logic to the underlying tables in PL/SQL trigger of Portal
( here V_EMP_DEPT_UPDATE, V_EMP_DEPT_INSERT)
- Manohar -
How to apply sort on an already dispaled resultset from a procedure
Hi,
I have a data block for which the 'query data source type' is PROCEDURE. When I query the block all the records in the procedure are displayed. Then I query for a specific value for the DATE column (ex: 27/07/2010) and it displays records for only 27/07/2010. Now I want to sort the displayed records.
My columns are DATE, TRANSACTION NUMBER, PROJECT CODE
I have a button each for DATE, TRANSACTION NUMBER, PROJECT CODE to do the sorting. When I click on the PROJECT CODE sort button , the already retireved records for 27/07/2010 must be sorted according to project code.
But this is not happening. The current coding will query the data block for all the records and then apply the sorting for DATE column.
Please advise.Actually i don't know but what i gave u but i have read that If you attempt setting the where clause in the block it is totally ignored.
i hardly search just found the following...
Subject: How to Filter Rows on Block Based on Stored Procedure in Oracle Forms?
Doc ID: Note:1078147.6 Type: PROBLEM
Last Revision Date: 22-JUN-2004 Status: PUBLISHED
Problem Description:
====================
Whilst in ENTER QUERY mode you would like to specify a search criteria to
restrict the results of your query. The block on which this query resides
is based on a stored procedure.
Problem Explanation:
====================
If you attempt setting the where clause in the block it is totally ignored.
This happens with both the 'Ref Cursor' or 'Table of Records' variable.
Problem References:
===================
[Search Words: filter ]
Solution Summary:
=================
With Forms 5.0 and above, you can use the Tools--> Datablock Wizard menu
in the Object Navigator to enter the datablock wizard in a re-enterant mode.
You can then specify the query criteria there.
Alternatively, you can pass the query criteria from Forms to the stored
procedure as an IN argument. You can then use the parameter with the
select statement (in the procedure you have created using the 'Table of Records
or 'Ref Cursor').
Solution Description:
=====================
If the blocks were created using the Datablock Wizard with the
"stored procedure" radio button, you can always re-enter the datablock wizard
for that block by clicking on the Tools-->Datablock Wizard. If you go to the
Query tab on the bottom of the tab page you will notice that it requests the
name of the parameter. This is where you enter -
:parameter.<parameter_name>
This method relies on having a parameter in the form that passes the
value, for example p_deptno, into the stored procedure. This is done in order
to get the corresponding records from the emp table for all employees who work
in that deptartment.
Additionally create a PRE-QUERY trigger and assign the value of the deptno you
are passing through this parameter using the following:
(:parameter.<parameter_name>:= :dept.deptno).
If the blocks were created manually, however, YOU CANNOT use the re-enterant
option to go to the Datablock Wizard. For these type of blocks, use the method
suggested below.
METHOD FOR MANUALLY CREATED BLOCKS:
===================================
Re-enter the Datablock Wizard by using the Tools--> Datablock Wizard menu of the
Object Navigator. You will notice that you will not be able to see any
procedure in the Datablock Wizard in re-enterant mode.
To use this method, you will need to include one more parameter to your query
procedure as an IN parameter. For example, if you are passing deptno as query
criteria, click on the "Query Data Source Arguments" of your block property
sheet and include the following:
ARGUMENT NAME: set to P_DEPTNO or (any variable name)
TYPE: set to the appropriate datatype, for example, NUMBER
TYPENAME: set to dept.deptno%type, for example
MODE: set to IN
VALUE: set to :dept.deptno(the :blockname.itemname you are passing
as query criteria.).
In the query procedure, include this parameter as an IN argument, and as the
2nd parameter. For example:
Procedure empquery_refcur(emp_data IN OUT empcur, v_dno IN number) AS ....
Finally, include this paramter in your select statement of either 'Table of
Records' or 'Ref Cursor' as
select empno, ename
from emp
where deptno=nvl(v_dno, deptno);But no chance to Sort it may be from inside the procedure itself.
Hope this helps...
Regards,
Abdetu... -
Unable to activate the Workflow feature in sharepoint 2013
Microsoft.Workflow.Client.ActivityNotFoundException: The activity named 'WorkflowXaml_60e6cb77_316a_49ef_8c96_b3ef192dff99' from scope '/SharePoint/default/1e658dce-78af-4b0d-88fb-ab5ec6458409/40a79cb2-9b65-4fcd-a4e6-04004504b70a' was not found. HTTP
headers received from the server - ActivityId: 8d267bcb-bd90-4103-a4e9-94a255fe337c. NodeId: PMOINABOX-APP1. Scope: /SharePoint/default/1e658dce-78af-4b0d-88fb-ab5ec6458409/40a79cb2-9b65-4fcd-a4e6-04004504b70a. Client ActivityId : f7586d9c-231d-b0d7-bebc-709cfc8fdcce.
---> System.Net.WebException: The remote server returned an error: (404) Not Found.
at Microsoft.Workflow.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
at Microsoft.Workflow.Client.HttpGetResponseAsyncResult`1.End(IAsyncResult result)
at Microsoft.Workflow.Client.ClientHelpers.SendRequest[T](HttpWebRequest request, T content)
--- End of inner exception stack trace ---
at Microsoft.Workflow.Client.ClientHelpers.SendRequest[T](HttpWebRequest request, T content)
at Microsoft.Workflow.Client.WorkflowManagementClient.SendRequest[T](HttpWebRequest request, T content)
at Microsoft.Workflow.Client.WorkflowManager.Publish(WorkflowDescription description, Boolean terminateActiveInstances)
at Microsoft.SharePoint.WorkflowServices.FabricWorkflowManagementClient.PublishWorkflow(String serviceGroupName, WorkflowDescription workflow)
at Microsoft.SharePoint.WorkflowServices.WorkflowProxy.CreateDefinitionSubscription(String subscriptionName, String eventSource, List`1 eventTypes, String definitionName, IDictionary`2 metadata, WorkflowEventContext eventContext)
at Microsoft.SharePoint.WorkflowServices.FabricSubscriptionService.<>c__DisplayClass1.<CreateDefinitionSubscription>b__0()
at Microsoft.SharePoint.WorkflowServices.WorkflowServiceContextExtensions.InvokeWithEcosystemRetry(WorkflowServicesContext context, EcosystemRequiredMethod method)
at Microsoft.SharePoint.WorkflowServices.FabricSubscriptionService.CreateDefinitionSubscription(String subscriptionName, Guid eventSourceId, String eventSource, List`1 eventNames, String definitionName, IDictionary`2 metadata, WorkflowEventContext
eventContext)
at Microsoft.SharePoint.WorkflowServices.WorkflowSubscriptionStorageEventReceiver.ItemAdded(SPItemEventProperties properties)Hi Ayyappa18,
Whether this Worflow feature was created by yourself, then you activated it after you deployed it in your SharePoint 2013.
Please activate this feature using the following PowerShell cmdlet:
Enable-SPFeature –identity f7586d9c-231d-b0d7-bebc-709cfc8fdcce -URL <your site URL>
More information about the above cmdlet, please refer to the link below:
http://technet.microsoft.com/en-us/library/ff607803.aspx
I hope this helps.
Thanks
Wendy
Wendy Li
TechNet Community Support -
[A4017]: Destination name is not specified.
Hi,
I created a topic resource as follows
<jms-resource enabled="true" jndi-name="jms/topicDestination" res-type="javax.jms.Topic">
<description>publish subscribe</description>
<property value="topicDestination" name="DestinationName"/>
</jms-resource>
But the I started the server I got the error below
INFO: JMS5015: Install JMS resources ...
INFO: JMS5002: Binding [< JMS Destination: jms/topicDestination, javax.jms.Topic, No properties >]
SEVERE: JMS5027: Exception in creating JMS destination administered object [jms/topicDestination]: [[A4017]: Destination name is not specified.]
SEVERE: JMS5031: Exception in creating JMS destination administered object javax.jms.JMSException: [A4017]: Destination name is not specified.
at com.sun.messaging.jmq.admin.jmsspi.JMSAdminImpl.createDestinationObject(JMSAdminImpl.java:194)
at com.iplanet.ias.jms.IASJmsConfig.createDestination(IASJmsConfig.java:85)
at com.iplanet.ias.jms.IASJmsUtil.installJMSResources(IASJmsUtil.java:219)
at com.sun.enterprise.resource.ResourceInstaller.installJMSResources(ResourceInstaller.java:1383)
at com.sun.enterprise.server.J2EEServer.run(J2EEServer.java:418)
at com.sun.enterprise.server.J2EEServer.main(J2EEServer.java:1415)
at com.iplanet.ias.server.ApplicationServer.onInitialization(ApplicationServer.java:212)
at com.iplanet.ias.server.J2EERunner.confPreInit(J2EERunner.java:114)
Does anyone know how to properly specified the destination name and physical destination name in the porperties page in GUI admin console? And how it would look like in the server.xml file?
Thanks in advance for your help.
ShaHi Sha ,
The exception you are getting is because you have specified
the property name as "DestinationName" instead of "imqDestinationName".
This is how you specify the destination name using the GUI console :
1. Create a jms destination resource throught the admin
GUI.
2. Click the properties button to add imqDestination name.(property button is displyed after cliking on the jms destination resource)
3. Add a property imqDestination, specify value say
SampleTopic.
The SampleTopic name specified is the physical estination name
1.To create a physical destination name , right click the Physical Destination node under jms->service
2. Click new ,specify the Destination Name as
SampleTopic.
After doing the above , you will find the following changes in your server.xml file -
<jms-resource enabled="true" jndi-name="jms/topic" res-
type="javax.jms.Topic">
<property value="SampleTopic "
name="imqDestinationName"/>
</jms-resource>
Hope this helps.Get back in case of any issues. -
IfsException: IFS-10407: Invalid Attribute name
I'm trying to programmaticaly create an instance of the custom class AsapPublisher that I have created. When I attempt to set the attribute jobTitle I get the IFS exception 10407. The attribute jobTitle exists so I unsure why I'm getting this error. Below is my code and stack trace. If anyone can see where I'm going wrong I would appreciate input. Thanks!
instantiatePublisher.jsp
<%@ page contentType="text/html;charset=WINDOWS-1252"%>
<%@ page import="oracle.ifs.common.IfsException" %>
<%@ page import="oracle.ifs.beans.LibrarySession" %>
<%@ page import="oracle.ifs.beans.LibraryService" %>
<%@ page import="java.util.Locale" %>
<%@ page import="oracle.ifs.beans.ClassObject" %>
<%@ page import="java.io.*" %>
<%@ page import="publishasap.AsapPublisher" %>
<%@ page import="publishasap.definition.AsapPublisherDef" %>
<%@ page import="publishasap.definition.AsapPublisherContactDef" %>
<%@ page import="oracle.ifs.common.CleartextCredential" %>
<%@ page import="oracle.ifs.common.ConnectOptions" %>
<%
String username = "system";
String password = "manager";
String serviceName = "IfsDefault";
String servicePassword = "ifssys";
try
LibraryService ifsService = new LibraryService();
CleartextCredential credentials = new CleartextCredential(username,password);
ConnectOptions connectOpts = new ConnectOptions();
connectOpts.setLocale(Locale.getDefault());
connectOpts.setServiceName(serviceName);
connectOpts.setServicePassword(servicePassword);
LibrarySession ifsSession = ifsService.connect(credentials,connectOpts);
ifsSession.setAdministrationMode(true);
//set the AsapPublisher attributes and create a publisher instance
AsapPublisherDef publisher = new AsapPublisherDef(ifsSession);
publisher.setCompanyName(request.getParameter("pubName"));
publisher.setAddress1(request.getParameter("address1"));
publisher.setAddress2(request.getParameter("address2"));
publisher.setCity(request.getParameter("city"));
publisher.setState(request.getParameter("state"));
publisher.setPostalCode(request.getParameter("postalCode"));
publisher.setCountry(request.getParameter("country"));
publisher.setPhoneNumber(request.getParameter("phoneNumber"));
publisher.setPublisherDescription(request.getParameter("pubDescription"));
out.println("here");
//create the publisher contact object
AsapPublisherContactDef contact = new AsapPublisherContactDef(ifsSession);
contact.setClassObject(ClassObject.getClassObjectFromLabel(ifsSession,publishasap.AsapPublisherContact.CLASS_NAME));
contact.setJobTitle(request.getParameter("jobTitle"));
contact.setPrefix(request.getParameter("prefix"));
contact.setFirstName(request.getParameter("fName"));
contact.setMInitial(request.getParameter("mInitial"));
contact.setLastName(request.getParameter("lName"));
contact.setSuffix(request.getParameter("suffix"));
contact.setEmail1(request.getParameter("email1"));
contact.setEmail2(request.getParameter("email2"));
contact.setFax(request.getParameter("fax"));
contact.setWkPhone(request.getParameter("workPhone"));
contact.setUsername(request.getParameter("username"));
contact.setPassword(request.getParameter("password"));
publisher.setAsapPublisherContact(contact);
AsapPublisher createPub = (AsapPublisher) ifsSession.createPublicObject(contact);
ifsSession.disconnect();
catch(IfsException e)
out.println("System was unable to create an author object");
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw, true);
e.printStackTrace(pw);
String trace = sw.toString();
sw.close();
pw.close();
out.println(trace);
IfsException.setVerboseMessage(true);
String message = e.getMessage();
out.println(message);
%>
AsapPublisher.java
// Copyright (c) 2000 Thin Data Solutions
package publish asap;
import oracle.ifs.beans.*;
import oracle.ifs.common.*;
import oracle.ifs.server.S_LibraryObjectData;
import publishasap.AsapCustomer;
import publishasap.AsapPublisherContact;
import publishasap.definition.AsapPublisherContactDef;
* A Bean class.
* <P>
public class AsapPublisher extends AsapCustomer {
public static final String CLASS_NAME= "AsapPublisher";
public static final String PUBLISHER_CONTACT= "AsapPublisherContact";
public static final String PUBLISHER_DESCRIPTION="publisherDescription";
private LibrarySession m_IfsSession= null;
* Constructor
public AsapPublisher( LibrarySession ifs,
java.lang.Long id,
java.lang.Long classId,
S_LibraryObjectData data)
throws IfsException{
// Construct a Document object - standard variant.
super(ifs,id,classId,data);
m_IfsSession= ifs;
public void setAsapPublisherContact(AsapPublisherContact newValue)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute(PUBLISHER_CONTACT, av);
public void setAsapPublisherContact(AsapPublisherContactDef newValue)
throws IfsException{
PublicObject po= m_IfsSession.createPublicObject(newValue);
AttributeValue av= AttributeValue.newAttributeValue(po);
setAttribute(PUBLISHER_CONTACT, av);
public void setPublisherDescription(String newValue)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute(PUBLISHER_DESCRIPTION, av);
public String getPublisherDescription()
throws IfsException{
AttributeValue av= getAttribute(PUBLISHER_DESCRIPTION);
return av.getString(getSession());
public AsapPublisherContact getAsapPublisherContact()
throws IfsException{
AttributeValue av= getAttribute(PUBLISHER_CONTACT);
return (AsapPublisherContact)av.getObject(getSession());
AsapPublisherDef.jav
// Copyright (c) 2000 Thin Data Solutions
package publishasap;
import oracle.ifs.beans.*;
import oracle.ifs.common.*;
import oracle.ifs.server.S_LibraryObjectData;
import publishasap.AsapCustomer;
import publishasap.AsapPublisherContact;
import publishasap.definition.AsapPublisherContactDef;
* A Bean class.
* <P>
public class AsapPublisher extends AsapCustomer {
public static final String CLASS_NAME= "AsapPublisher";
public static final String PUBLISHER_CONTACT= "AsapPublisherContact";
public static final String PUBLISHER_DESCRIPTION="publisherDescription";
private LibrarySession m_IfsSession= null;
* Constructor
public AsapPublisher( LibrarySession ifs,
java.lang.Long id,
java.lang.Long classId,
S_LibraryObjectData data)
throws IfsException{
// Construct a Document object - standard variant.
super(ifs,id,classId,data);
m_IfsSession= ifs;
public void setAsapPublisherContact(AsapPublisherContact newValue)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute(PUBLISHER_CONTACT, av);
public void setAsapPublisherContact(AsapPublisherContactDef newValue)
throws IfsException{
PublicObject po= m_IfsSession.createPublicObject(newValue);
AttributeValue av= AttributeValue.newAttributeValue(po);
setAttribute(PUBLISHER_CONTACT, av);
public void setPublisherDescription(String newValue)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute(PUBLISHER_DESCRIPTION, av);
public String getPublisherDescription()
throws IfsException{
AttributeValue av= getAttribute(PUBLISHER_DESCRIPTION);
return av.getString(getSession());
public AsapPublisherContact getAsapPublisherContact()
throws IfsException{
AttributeValue av= getAttribute(PUBLISHER_CONTACT);
return (AsapPublisherContact)av.getObject(getSession());
AsapPublisherContact.java
// Copyright (c) 2000 Movement Inc.
package publishasap;
import publish asap.*;
import oracle.ifs.beans.*;
import oracle.ifs.common.*;
import oracle.ifs.server.S_LibraryObjectData;
* A Bean class.
* <P>
public class AsapPublisherContact extends AsapPerson {
public static final String PUBLISHER_ID= "publisherId";
public static final String JOB_TITLE= "jobTitle";
public static final String CLASS_NAME= "AsapPublisherContact";
* Constructor
public AsapPublisherContact( LibrarySession ifs,
java.lang.Long id,
java.lang.Long classId,
S_LibraryObjectData data)
throws IfsException{
// Construct a Document object - standard variant.
super(ifs,id,classId,data);
public void setPublisherId(String newId)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newId);
setAttribute(PUBLISHER_ID, av);
public void setJobTitle(String newTitle)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newTitle);
setAttribute(JOB_TITLE, av);
public String getPublisherId()
throws IfsException{
AttributeValue av= getAttribute(PUBLISHER_ID);
return av.getString(getSession());
public String getJobTitle()
throws IfsException{
AttributeValue av= getAttribute(JOB_TITLE);
return av.getString(getSession());
AsapPublisherContactDef.java
// Copyright (c) 2000 Movement Inc.
package publishasap.definition;
import publishasap.AsapPublisherContact;
import oracle.ifs.beans.*;
import oracle.ifs.common.*;
* A Bean class.
* <P>
public class AsapPublisherContactDef extends AsapPersonDef {
* Constructor
public AsapPublisherContactDef(LibrarySession ifs)
throws IfsException
// Construct a Document object - standard variant.
super(ifs);
this.setClassObject(ClassObject.getClassObjectFromLabel(ifs,publishasap.AsapPublisherContact.CLASS_NAME));
public void setPublisherId(String newId)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newId);
setAttribute(AsapPublisherContact.PUBLISHER_ID, av);
public void setJobTitle(String newTitle)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newTitle);
setAttribute(AsapPublisherContact.JOB_TITLE, av);
AsapPublisherContact.xml
<ClassObject>
<Name>AsapPublisherContact</Name>
<Description>Stores the information on the main contact person for the publisher.</Description>
<SuperClass RefType="name">AsapPerson</SuperClass>
<BeanClassPath>publishasap.AsapPublisherContact</BeanClassPath>
<!-- Attribute list for the object -->
<Attributes>
<!-- Store the primary key of the publisher whom this person is the contact for. -->
<Attribute>
<Name>publisherId</Name>
<DataType>String</DataType>
<DataLength>10</DataLength>
</Attribute>
<!-- Store the contact person's job title or position. -->
<Attribute>
<Name>jobTitle</Name>
<DataType>String</DataType>
<DataLength>70</DataLength>
</Attribute>
</Attributes>
</ClassObject>
AsapPublisher.xml
<ClassObject>
<Name>AsapPublisher</Name>
<Description>Stores the information about publishers in the database.</Description>
<SuperClass RefType="name">AsapCustomer</SuperClass>
<BeanClassPath>publishasap.AsapPublisher</BeanClassPath>
<!-- Attribute list for the object. -->
<Attributes>
<!-- A reference to the main contact person at the publisher. -->
<Attribute>
<Name>asapPublisherContact</Name>
<DataType>PublicObject</DataType>
<ClassDomain reftype="name">AsapPubContactDomain</ClassDomain>
</Attribute>
<!-- A Descript ion of the publisher. -->
<Attribute>
<Name>publisherDescription</Name>
<DataType>String</DataType>
<DataLength>500</DataLength>
</Attribute>
</Attributes>
</ClassObject>
stack trace
System was unable to create an author object oracle.ifs.common.IfsException: IFS-30002: Unable to create new LibraryObject oracle.ifs.common.IfsException: IFS-10407: Invalid Attribute name (JOBTITLE) at oracle.ifs.server.S_LibraryObject.insertRows(S_LibraryObject.java, Compiled Code) at oracle.ifs.server.OperationState.executeAtomicOperations(OperationState.java, Compiled Code) at oracle.ifs.server.S_LibraryObject.createInstance(S_LibraryObject.java, Compiled Code) at oracle.ifs.server.S_LibrarySession.newLibraryObject(S_LibrarySession.java, Compiled Code) at oracle.ifs.server.S_LibrarySession.newPublicObject(S_LibrarySession.java:6853) at oracle.ifs.server.S_LibrarySession.newPublicObject(S_LibrarySession.java:6835) at oracle.ifs.server.S_LibrarySession.DMNewPublicObject(S_LibrarySession.java:6623) at oracle.ifs.beans.LibrarySession.DMNewPublicObject(LibrarySession.java:7226) at oracle.ifs.beans.LibrarySession.NewPublicObject(LibrarySession.java:4795) at oracle.ifs.beans.LibrarySession.createPublicObject(LibrarySession.java:2789) at publishasap.definition.AsapPublisherDef.setAsapPublisherContact(AsapPublisherDef.java:41) at ifs.files._ifs._jsp_25_2dbin._admin._instantiatePublisher._jspService(_instantiatePublisher.java:166) at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java, Compiled Code) at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java, Compiled Code) at oracle.jsp.JspServlet.doDispatch(JspServlet.java, Compiled Code) at oracle.jsp.JspServlet.internalService(JspServlet.java, Compiled Code) at oracle.ifs.protocols.dav.impl.IfsDavServlet.processJsp(IfsDavServlet.java, Compiled Code) at oracle.ifs.protocols.dav.impl.IfsDavServlet.doGet(IfsDavServlet.java, Compiled Code) at oracle.ifs.protocols.dav.impl.IfsDavServlet.doPost(IfsDavServlet.java, Compiled Code) at oracle.ifs.protocols.dav.DavServlet.processRequest(DavServlet.java, Compiled Code) at oracle.ifs.protocols.dav.DavServlet.service(DavServlet.java, Compiled Code) at oracle.ifs.protocols.dav.impl.IfsDavServlet.service(IfsDavServlet.java, Compiled Code) at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code) at org.apache.jserv.JServConnection.processRequest(JServConnection.java, Compiled Code) at org.apache.jserv.JServConnection.run(JServConnection.java, Compiled Code) at java.lang.Thread.run(Thread.java, Compiled Code) IFS-30002: Unable to create new LibraryObjectSorry Mark. Here are the rest of the files.
AsapPerson.java
// Copyright (c) 2000 PublishASAP
package publishasap;
import oracle.ifs.beans.ApplicationObject;
import oracle.ifs.beans.LibrarySession;
import oracle.ifs.common.AttributeValue;
import oracle.ifs.common.IfsException;
import oracle.ifs.server.S_LibraryObjectData;
* Superclass of all people involved in Publishasap
* <P>
public class AsapPerson extends ApplicationObject {
// Private class constants.
public static final String CLASS_NAME = "AsapPerson";
public static final String PREFIX= "prefix";
public static final String FIRST_NAME= "firstName";
public static final String INITIAL= "mInitial";
public static final String LAST_NAME= "lastName";
public static final String SUFFIX = "suffix";
public static final String EMAIL_ONE= "email1";
public static final String EMAIL_TWO= "email2";
public static final String WORK_PHONE= "wkPhone";
public static final String FAX= "fax";
public static final String USERNAME= "username";
public static final String PASSWORD= "password";
* Constructor
public AsapPerson(LibrarySession ifs,
java.lang.Long id,
java.lang.Long classId,
S_LibraryObjectData data)
throws IfsException{
super(ifs, id, classId, data);
* Set the value of the PREFIX attribute.
public final void setPrefix( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue( newValue );
setAttribute( PREFIX, av );
* Get the current value of the PREFIX attribute.
public final String getPrefix()
throws IfsException{
AttributeValue av= getAttribute(PREFIX);
String tmp= av.getString(getSession());
return tmp.trim();
* Set the value of the first name attribute.
public final void setFirstName( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue( newValue );
setAttribute( FIRST_NAME, av );
* Get the current value of the FIRST_NAME attribute.
public final String getFirstName()
throws IfsException{
AttributeValue av= getAttribute(FIRST_NAME);
String tmp= av.getString(getSession());
return tmp.trim();
* Set the value of the INITIAL attribute.
public final void setMInitial( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue( newValue );
setAttribute( INITIAL, av );
* Get the current value of the INITIAL attribute.
public final String getMInitial()
throws IfsException{
AttributeValue av= getAttribute(INITIAL);
String tmp= av.getString(getSession());
return tmp.trim();
* Set the value of the LAST_NAME attribute.
public final void setLastName( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue( newValue );
setAttribute( LAST_NAME, av );
* Get the current value of the LAST_NAME attribute.
public final String getLastName()
throws IfsException{
AttributeValue av= getAttribute(LAST_NAME);
String tmp= av.getString(getSession());
return tmp.trim();
* Set the value of the SUFFIX attribute.
public final void setSuffix( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue( newValue );
setAttribute( SUFFIX, av );
* Get the current value of the SUFFIX attribute.
public final String getSuffix()
throws IfsException{
AttributeValue av= getAttribute(SUFFIX);
String tmp= av.getString(getSession());
return tmp.trim();
* Set the EMAIL_ONE attribute.
public final void setEmail1( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( EMAIL_ONE, av );
* Get the current value of the EMAIL_ONE.
public final String getEmail1()
throws IfsException{
AttributeValue av= getAttribute(EMAIL_ONE);
String tmp= av.getString(getSession());
return t mp.trim();
* Set the EMAIL_TWO attribute.
public final void setEmail2( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( EMAIL_TWO, av );
* Get the current value of EMAIL_TWO.
public final String getEmail2()
throws IfsException{
AttributeValue av= getAttribute(EMAIL_TWO);
String tmp= av.getString(getSession());
return tmp.trim();
* Set the value of the WORK_PHONE attribute.
public final void setWkPhone( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( WORK_PHONE, av );
* Get the current value of the WORK_PHONE attribute.
public final String getWkPhone()
throws IfsException{
AttributeValue av= getAttribute(WORK_PHONE);
String tmp= av.getString(getSession());
return tmp.trim();
* Set the value of the FAX attribute.
public final void setFax( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( FAX, av );
* Get the current value of the FAX attribute.
public final String getFax()
throws IfsException{
AttributeValue av= getAttribute(FAX);
String tmp= av.getString(getSession());
return tmp.trim();
* Set the value of the username and password.
public final void setUsername( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( USERNAME, av );
* Get the current value of the USERNAME.
public final String getUsername()
throws IfsException{
AttributeValue av= getAttribute(USERNAME);
String tmp= av.getString(getSession());
return tmp.trim();
* Set the value of the PASSWORD attribute.
public final void setPassword( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( PASSWORD, av );
* Get the current value of the password field.
public final String getPassword()
throws IfsException{
AttributeValue av= getAttribute(PASSWORD);
String tmp= av.getString(getSession());
return tmp.trim();
AsapPersonDef.java
// Copyright (c) 2000 Movement Inc
package publishasap.definition;
import oracle.ifs.beans.ClassObject;
import oracle.ifs.beans.LibrarySession;
import oracle.ifs.beans.LibraryObjectDefinition;
import oracle.ifs.beans.ApplicationObjectDefinition;
import oracle.ifs.common.AttributeValue;
import oracle.ifs.common.IfsException;
import javax.servlet.http.HttpServletRequest;
import oracle.ifs.beans.DocumentDefinition;
* A Bean class.
* <P>
* @author Brooke Supryka
public class AsapPersonDef extends ApplicationObjectDefinition {
* This bean is called to create an instance of a person
* <P>
* @author Brooke Supryka
private static final boolean DEBUG = true;
* Constructs a new instance.
public AsapPersonDef(LibrarySession ifs) throws IfsException
//Construct an AsapAuthor object
super(ifs);
this.setClassObject(ClassObject.getClassObjectFromLabel(ifs,publishasap.AsapPerson.CLASS_NAME));
* Set the value of the PREFIX attribute.
public final void setPrefix( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue( newValue );
setAttribute( publishasap.AsapPerson.PREFIX, av );
* Set the value of the first name attribute.
public final void setFirstName( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue( newValue );
setAttribute( publishasap.AsapPerson.FIRST_NAME, av );
* Set the value of the INITIAL attribute.
public final void setMInitial( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue( newValue );
setAttribute( publishasap.AsapPerson.INITIAL, av );
* Set the value of the LAST_NAME attribute.
public final void setLastName( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue( newValue );
setAttribute( publishasap.AsapPerson.LAST_NAME, av );
* Set the value of the SUFFIX attribute.
public final void setSuffix( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue( newValue );
setAttribute( publishasap.AsapPerson.SUFFIX, av );
* Set the EMAIL_ONE attribute.
public final void setEmail1( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( publishasap.AsapPerson.EMAIL_ONE, av );
* Set the EMAIL_TWO attribute.
public final void setEmail2( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( publishasap.AsapPerson.EMAIL_TWO, av );
* Set the value of the WORK_PHONE attribute.
public final void setWkPhone( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( publishasap.AsapPerson.WORK_PHONE, av );
* Set the value of the FAX attribute.
public final void setFax( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( publishasap.AsapPerson.FAX, av );
* Set the value of the username and password.
public final void setUsername( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( publishasap.AsapPerson.USERNAME, av );
* Set the value of the PASSWORD attribute.
public final void setPassword( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( publishasap.AsapPerson.PASSWORD, av );
AsapCustomer
// Copyright (c) 2000 Movement Inc.
package publishasap;
import oracle.ifs.beans.*;
import oracle.ifs.common.*;
import oracle.ifs.server.S_LibraryObjectData;
* Instance of AsapCustomer.
* <P>
* @author Ian Kulmatycki
public class AsapCustomer extends TieApplicationObject {
public static final String CLASS_NAME= "AsapCustomer";
public static final String COMPANY_NAME= "companyName";
public static final String ADDRESS_1= "address1";
public static final String ADDRESS_2= "address2";
public static final String CITY= "city";
public static final String STATE= "state";
public static final String POSTAL_CODE= "postalCode";
public static final String PHONE_NUMBER= "phoneNumber";
public static final String COUNTRY= "country";
* Constructor
public AsapCustomer( LibrarySession ifs,
java.lang.Long id,
java.lang.Long classId,
S_LibraryObjectData data)
throws IfsException{
// Construct a Document object - standard variant.
super(ifs,id,classId,data);
public void setCompanyName(String newName)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newName);
setAttribute(COMPANY_NAME, av);
public void setAddress1(String newAddress)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newAddress);
setAttribute(ADDRESS_1, av);
public void setAddress2(String newAddress)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newAddress);
setAttribute(ADDRESS_2, av);
public void setCity(String newCity)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newCity);
setAttribute(CITY, av);
public void setState(String newState)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newState);
setAttribute(STATE, av);
public void setPostalCode(String newPostalCode)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newPostalCode);
setAttribute(POSTAL_C ODE, av);
public void setCountry(String newCountry)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newCountry);
setAttribute(COUNTRY, av);
public void setPhoneNumber(String newPhoneNumber)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newPhoneNumber);
setAttribute(PHONE_NUMBER, av);
public String getCompanyName()
throws IfsException{
AttributeValue av= getAttribute(COMPANY_NAME);
return av.getString(getSession());
public String getAddress1()
throws IfsException{
AttributeValue av= getAttribute(ADDRESS_1);
return av.getString(getSession());
public String getAddress2()
throws IfsException{
AttributeValue av= getAttribute(ADDRESS_2);
return av.getString(getSession());
public String getCity()
throws IfsException{
AttributeValue av= getAttribute(CITY);
return av.getString(getSession());
public String getPostalCode()
throws IfsException{
AttributeValue av= getAttribute(POSTAL_CODE);
return av.getString(getSession());
public String getCountry()
throws IfsException{
AttributeValue av= getAttribute(COUNTRY);
return av.getString(getSession());
public String getState()
throws IfsException{
AttributeValue av= getAttribute(STATE);
return av.getString(getSession());
public String getPhoneNumber()
throws IfsException{
AttributeValue av= getAttribute(PHONE_NUMBER);
return av.getString(getSession());
AsapCustomerDef.java
// Copyright (c) 2000 Movement Inc.
package publishasap.definition;
import oracle.ifs.beans.*;
import oracle.ifs.common.*;
import publishasap.AsapCustomer;
* Create the definition for an AsapCustomer object.
* <P>
* @author Ian Kulmatycki
public class AsapCustomerDef extends ApplicationObjectDefinition {
* Constructor
public AsapCustomerDef(LibrarySession ifs)
throws IfsException
// Construct a Document object - standard variant.
super(ifs);
this.setClassObject(ClassObject.getClassObjectFromLabel(ifs,publishasap.AsapCustomer.CLASS_NAME));
public void setCompanyName(String newName)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newName);
setAttribute(AsapCustomer.COMPANY_NAME, av);
public void setAddress1(String newAddress)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newAddress);
setAttribute(AsapCustomer.ADDRESS_1, av);
public void setAddress2(String newAddress)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newAddress);
setAttribute(AsapCustomer.ADDRESS_2, av);
public void setCity(String newCity)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newCity);
setAttribute(AsapCustomer.CITY, av);
public void setState(String newState)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newState);
setAttribute(AsapCustomer.STATE, av);
public void setPostalCode(String newPostalCode)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newPostalCode);
setAttribute(AsapCustomer.POSTAL_CODE, av);
public void setCountry(String newCountry)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newCountry);
setAttribute(AsapCustomer.COUNTRY, av);
public void setPhoneNumber(String newPhoneNumber)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newPhoneNumber);
setAttribute(AsapCustomer.PHONE_NUMBER, av);
AsapPerson.xml
<?xml version = '1.0' standalone = 'yes'?>
<!-- AsapPerson.xml -->
<ClassObject>
<Name>AsapPerson</Name>
<Description>AsapPerson Object</Description>
<Superclass Reftype = "name">ApplicationObject</Superclass>
<BeanClassPath>publishasap.AsapPerson</BeanClassPath>
<Attributes> ;
<Attribute>
<Name>prefix</Name>
<DataType>String</DataType>
<DATALENGTH>4</DATALENGTH>
</Attribute>
<Attribute>
<Name>firstName</Name>
<DataType>String</DataType>
<DATALENGTH>30</DATALENGTH>
</Attribute>
<Attribute>
<Name>mInitial</Name>
<DataType>String</DataType>
<DATALENGTH>1</DATALENGTH>
</Attribute>
<Attribute>
<Name>lastName</Name>
<DataType>String</DataType>
<DATALENGTH>30</DATALENGTH>
</Attribute>
<Attribute>
<Name>suffix</Name>
<DataType>String</DataType>
<DATALENGTH>4</DATALENGTH>
</Attribute>
<Attribute>
<Name>email1</Name>
<DataType>String</DataType>
<DATALENGTH>50</DATALENGTH>
</Attribute>
<Attribute>
<Name>email2</Name>
<DataType>String</DataType>
<DATALENGTH>50</DATALENGTH>
</Attribute>
<Attribute>
<Name>fax</Name>
<DataType>String</DataType>
<DATALENGTH>20</DATALENGTH>
</Attribute>
<Attribute>
<Name>wkPhone</Name>
<DataType>String</DataType>
<DATALENGTH>20</DATALENGTH>
</Attribute>
<Attribute>
<Name>username</Name>
<DataType>String</DataType>
<DATALENGTH>15</DATALENGTH>
</Attribute>
<Attribute>
<Name>password</Name>
<DataType>String</DataType>
<DATALENGTH>15</DATALENGTH>
</Attribute>
</Attributes>
</ClassObject>
AsapCustomer.xml
<?xml version="1.0" standalone="yes"?>
<!-- AsapCustomer.xml -->
<!-- When parsed, this file will create the definition of an AsapCustomer in the database. -->
<ClassObject>
<Name>AsapCustomer</Name>
<Description>Parent of all customers that are using Publishasap.</Description>
<SuperClass RefType="name">ApplicationObject</SuperClass>
<BeanClassPath>publishasap.AsapCustomer</BeanClassPath>
<!-- Attribute list for the object. -->
<Attributes>
<!-- The company name of the customer. -->
<Attribute>
<Name>companyName</Name>
<DataType>String</DataType>
<DataLength>75</DataLength>
</Attribute>
<!-- The mailing address of the customer. -->
<Attribute>
<Name>address1</Name>
<DataType>String</DataType>
<DataLength>50</DataLength>
</Attribute>
<!-- The secondary mailing address of the customer. -->
<Attribute>
<Name>address2</Name>
<DataType>String</DataType>
<DataLength>50</DataLength>
</Attribute>
<!-- The mailing city of the customer. -->
<Attribute>
<Name>city</Name>
<DataType>String</DataType>
<DataLength>30</DataLength>
</Attribute>
<!-- The mailing state of the customer. -->
<Attribute>
<Name>state</Name>
<DataType>String</DataType>
<DataLength>4</DataLength>
</Attribute>
<!-- The mailing postal code of the customer. -->
<Attribute>
<Name>postalCode</Name>
<DataType>String</DataType>
<DataLength>10</DataLength>
</Attribute>
<!-- The contact phone number of the customer. -->
<Attribute>
<Name>phoneNumber</Name>
<DataType>String</DataType>
<DataLength>14</DataLength>
</Attribute>
<!-- The mailing country of the customer. -->
<Attribute>
<Name>country</Name>
<DataType>String</DataT ype>
<DataLength>30</DataLength>
</Attribute>
</Attributes>
</ClassObject>
null
Maybe you are looking for
-
When I open itunes and try to log out it freezes
when I open itunes and try to log out it freezes.
-
Audio CD not appearing in source list
Since installing the latest version of Itunes I have not been able to get audio cd's to show up in the source list. I am able to eject the disc with the icon in the lower right hand corner and the songs will play if I manually open them in My Compute
-
var text = "aXbY"; var re = /^(.*?)(?:X(.+)Y)?$/; alert(text.match(re)); Returns "aXbY,,b" in Photoshop instead of "aXbY,a,b". The non-capturing parentheses seems to be the problem.
-
I am getting the following error when attempting to run the XLIFFExtractor to export for translation: java.lang.NoClassDefFoundError: java/util/Map at at oracle.adf.mds.tools.trans.extractor.XLIFFExtractor.<init>(Compiled Code) at oracle.jrad.tools.t
-
Hi there. I actually have two questions: tabIndex is based on what? See this code counter++; var cre = _root.attachMovie("creditos", "creditos", counter); counter++; var sai = _root.attachMovie("sair", "sair", counter); counter++; var jog = _root.att